2009-10-30 85 views
11

我有一個啓用了Silverlight的WCF服務的網站。該服務工作正常,我可以在瀏覽器中瀏覽WSDL頁面,而不會出現任何問題。以編程方式創建WCF客戶端

現在,我想在DLL中創建一個客戶端。我需要以編程方式創建整個客戶端,因爲它是在DLL中調用的,無論出於什麼原因(通過設計?)都不會從它自己的配置文件中讀取ServiceModel節。

因此,這裏是我的代碼:

Dim endp As EndpointAddress = New EndpointAddress("http://www.mydomain.com/licensing/lic.svc") 
Dim bind As WSHttpBinding = New WSHttpBinding() 
Dim svc = New lnt.licClient(bind, endp) 
Dim rsp = svc.CheckIt(key) 

但是,當我稱之爲svc.CheckIt方法,我得到以下錯誤:

Content Type application/soap+xml; charset=utf-8 was not supported by service http://www.mydomain.com/licensing/lic.svc. 
The client and service bindings may be mismatched. 
{"The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'application/soap+msbin1'.."} 

如何正確地創建我的客戶,使這些是否正確「匹配」?
在此先感謝!

+1

Sivlerlight不支持WSHttpBinding。 http://msdn.microsoft.com/en-us/library/cc896571(VS.95).aspx – 2010-07-28 05:57:44

回答

11

啊---找到它了。該網站的web.config中的ServiceModel部分被設置爲customBinding。改變它,以便與客戶發送的內容相匹配,現在它運行得非常漂亮。

+0

還要確保您的**合約**與服務器端點匹配,以便使用正確的「customBindings」。 – SliverNinja 2012-05-25 14:33:19

3

我遇到了同樣的問題。更具體地說,我的修復是更新我使用的綁定類型。我正在使用wsHttpBindings而不是basicHttpBindings。這導致失敗,因爲wsHttpBindings使用SOAP 1.2,而basicHttpBindings使用SOAP 1.1並且我使用的服務需要SOAP 1.1

0

我有同樣的錯誤。服務正在編譯,客戶端應用程序也是如此。客戶端應用程序中的服務引用已成功更新引用。我嘗試刪除並再次添加引用,它不是有用的。問題出在Web服務中被刪除的界面中。

相關問題