无法创建WCF客户端

时间:2015-02-26 08:21:11

标签: c# wcf service client app-config

我有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 

2 个答案:

答案 0 :(得分:1)

需要更多信息。如果这是客户端app.config,那么您需要在system.serviceModel / client下添加。您无法在app.config中使用服务器端设置。

正如您所说,您正在使用“添加服务参考”,我希望您提交了该结果,这不是我在您所包含的配置文件中看到的结果。

如果您在自己的代码中自行托管wcf服务,那么我倾向于以调试模式运行主机 - 然后添加服务引用,因为现在主机正在运行。

事实上,如果您自己托管并从富客户端使用它,那么您可以完全跳过所有配置,并直接在ChannelFactory上使用接口 - 但这是一个不同的故事...

答案 1 :(得分:1)

您应首先验证您的服务是否存在任何问题,并且该服务已启动并正在运行。如果服务也在WCF中,那么您可以通过在浏览器中键入完整地址来浏览服务,您应该能够看到服务页面。一旦可以浏览,就可以使用add reference或svcutil命令创建客户端/代理。