вызов функции клиента WCF не работает на IIS - PullRequest
0 голосов
/ 23 августа 2011

Я сделал сервис, используя обнаружение 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 голосов
/ 23 августа 2011

Сначала попробуйте ПОЛУЧИТЬ http://computerName.domain/services/Service.svc в своем браузере - либо вы получите сообщение об ошибке, либо описание службы ..

...