我有WCF服务这是我的app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="PassAccessSystem.DBService.DBHostService">
<endpoint address="" binding="basicHttpBinding" contract="PassAccessSystem.DBService.IDBHostService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733/Design_Time_Addresses/PassAccessSystem/DBHostService/" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>
但是现在当我想创建WCF客户端时,在ADD SERVICE REFERANCE窗口中我找不到我的服务??? 我的app.config有什么问题?或者问题是其他的?`
An error occured while attempting to find services
或
cannot download metadata
答案 0 :(得分:1)
需要更多信息。如果这是客户端app.config,那么您需要在system.serviceModel / client下添加。您无法在app.config中使用服务器端设置。
正如您所说,您正在使用“添加服务参考”,我希望您提交了该结果,这不是我在您所包含的配置文件中看到的结果。
如果您在自己的代码中自行托管wcf服务,那么我倾向于以调试模式运行主机 - 然后添加服务引用,因为现在主机正在运行。
事实上,如果您自己托管并从富客户端使用它,那么您可以完全跳过所有配置,并直接在ChannelFactory上使用接口 - 但这是一个不同的故事...
答案 1 :(得分:1)
您应首先验证您的服务是否存在任何问题,并且该服务已启动并正在运行。如果服务也在WCF中,那么您可以通过在浏览器中键入完整地址来浏览服务,您应该能够看到服务页面。一旦可以浏览,就可以使用add reference或svcutil命令创建客户端/代理。