Доступ к службе WCF с другого компьютера

#wcf #cassini

#wcf #cassini

Вопрос:

Я потратил на это часы и просто не могу заставить его работать. Возможно, мое понимание размещения службы WCF и создания клиента для нее неверно.

На моем веб-сайте добавлена служба WCF со следующей конфигурацией…

 <system.serviceModel>

<bindings>
  <wsHttpBinding>
    <binding name="Binding1">
      <security mode="None">
        <transport clientCredentialType="None" />
        <message establishSecurityContext="false" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

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

    <services>
        <service behaviorConfiguration="MyWCFWebApp.Service1Behavior" name="MyWCFWebApp.Service1">
            <endpoint address="" binding="wsHttpBinding" contract="MyWCFWebApp.IService1" bindingConfiguration="Binding1">
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        </service>
    </services>

</system.serviceModel>
  

Когда я запускаю веб-сайт через Visual Studio, используя встроенный веб-сервер, я могу получить доступ к веб-сервису черезhttp://localhost:9988/Service1.svc

но…

При размещении веб-сайта через сервер CassiniDev с привязкой к ip и имени хоста я могу получить доступ к службе wcf через http://localhost:9988/Service1.svc , но как только я попытаюсь получить доступ к службе wcf, используя ip или имя хоста http://10.111.202.73:9988/Service1.svc , он возвращает следующую ошибку:

«Привязка протокола не соответствует указанному адресу ‘http://10.111.202.73:9988/Service1.svc ‘. Привязки протокола настраиваются на уровне сайта в IIS или конфигурации WAS.»

Я понятия не имею, почему это происходит. Есть идеи?

Комментарии:

1. откуда берется IP 10.111.202.73: 9988?

2. Несколько недостатков в моем сообщении. Я отредактировал это. 10.111.202.73 — это IP-адрес локального компьютера, пытающегося получить доступ к службе wcf через ip-адрес вместо localhost. Это тот же компьютер, на котором запущена служба wcf.

3. Похоже, это ошибка с WCF и cassini : (Решение недоступно. ultidev.com/Forums/default.aspx?g=postsamp;t=351

4. Рекомендуется определять адрес в конфигурации вашего сервера как http: // *: 9988, а не как localhost: 9988 , но я не знаю, поможет ли это в данном случае

Ответ №1:

Оказывается, проблема была связана с веб-сервисом cassinidev, который не поддерживает WCF 3.5…. Мне потребовалось некоторое время, чтобы разобраться с этим…

Ответ №2:

возможно, вы можете попробовать разместить свою службу в консольном приложении, просто чтобы проверить, связано ли это с IIS.