我已經在Visual Studio 2013中使用C#創建了一個WCF服務,並將其託管在IIS服務器上。我在新的WPF客戶端中使用服務時遇到問題,因爲在添加服務引用後端點缺失。C#IIS託管的WCF服務不會生成客戶端端點
我可以使用URL訪問服務,它給了我一個說明頁面,指出我需要創建一個客戶端來測試服務。該URL可以在服務器和我的筆記本電腦上運行。 WSDL確實存在,我可以查看XML結構。 Visual Studio允許我使用WSDL URL添加服務引用,並且正確生成代理客戶端代碼。
添加服務引用不會將任何端點添加到我的客戶端的App.Config文件。 WSDL中的Ctrl-F顯示WSDL中沒有任何端點數據。由另一個部門託管的另一項服務的WSDL確實包含了他們的端點,所以我知道它們應該以這種方式列出。
我能做些什麼來使WSDL自動將端點配置添加到客戶端?我不想記住每個新客戶端的端點,也不需要每次使用該服務的其他人請求我。
每this MSDN article我試過添加一節並重復該節中的端點,重新構建了我的服務,重新啓動了IIS服務器上的主機網站,並更新了我的服務引用,但端點仍未添加。
當我在「添加服務引用」對話框中使用Discover選項時,它確實找到了服務項目,但給出了錯誤,指出該URL不正確。只有樣板服務信息的另一個測試解決方案適用於該解決方案中的客戶端項目,並將端點添加到客戶端配置中。它沒有Web.Config中的任何內容,我遇到的服務沒有。
可能重複this question,但它沒有得到答覆。
這裏的web.config的從我的主機網站的相關部分(該服務的App.Config中是相同的):
<system.serviceModel>
<client>
<endpoint binding="webHttpBinding"
contract="TestLib.Service.ITestLibService" />
</client>
<services>
<service name="TestLib.Service.TestLibManager">
<endpoint binding="webHttpBinding" contract="TestLib.Service.ITestLibService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<webHttpBinding>
<binding>
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" proxyCredentialType="Windows"/>
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
任何幫助表示感謝,謝謝!