调用WCF客户端功能在IIS上不起作用

时间:2011-08-23 15:14:37

标签: c# wcf web-services discovery service-discovery

我使用WCF发现创建了一项服务。部署在特定端口上时,一切正常(使用VS2010调试),但当我尝试将其部署到IIS时,它会找到服务,但无法运行任何方法。

这是代码:

 DiscoveryClient discoverclient = new DiscoveryClient(new UdpDiscoveryEndpoint());
 FindResponse response = discoverclient.Find(new FindCriteria(typeof(IService)));
 EndpointAddress address = response.Endpoints[0].Address;
 ServiceClient client = new ServiceClient(new BasicHttpBinding(), address);
 Console.WriteLine(client.getMsg()); //some test function
 Console.ReadKey();

当运行client.getMsg()方法时,我收到以下错误:

  

EndpointNotFoundException:
  没有端点在听   http://computerName.domain/services/Service.svc可以接受   信息。这通常是由错误的地址或SOAP操作引起的。   有关更多详细信息,请参阅InnerException(如果存在)。

但是我得到了地址,这意味着它找到了它。如果我使用调试部署程序(而不是iis),我会在http://localhost:port/services/Service.svc中找到它并且它运行得非常好。如何将其部署到iis并没有问题?

操作系统:win7 64位

配置文件:

         

<services>
  <service behaviorConfiguration="RemoteDeploy.Service1Behavior"
    name="RemoteDeploy.Service">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration=""
      contract="RemoteDeploy.IService">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint name="udpDiscoveryEpt" kind="udpDiscoveryEndpoint" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>

</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="RemoteDeploy.Service1Behavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
      <serviceDiscovery>

        </serviceDiscovery>
    </behavior>
  </serviceBehaviors>
</behaviors>

1 个答案:

答案 0 :(得分:0)

首先尝试在浏览器中获取http://computerName.domain/services/Service.svc - 您收到错误或服务说明。