WCF через проблемный IP-адрес IIS

#wcf #iis-7

#wcf #iis-7

Вопрос:

Я создал службу WCF по дуплексному протоколу. Это работает правильно и отлично. Но у меня есть только одна небольшая проблема:

вот строка IP, с которой я могу начать ее тестирование:http://localhost:5659/Service.svc

Но когда я выбираю свой реальный IP-адрес на своем локальном компьютере (где существовал localhost): http://93.4.18.3:5659/Service.svc

Я пока не могу подключиться. Также я не могу подключиться с других адресов, используя свой реальный IP-адрес. Может быть, что-то не так в моем web.config?

Кстати — мой брандмауэр, если он выключен.

Вот моя конфигурация:

 <extensions>
  <bindingElementExtensions>
    <add name="pollingDuplex" type="System.ServiceModel.Configuration.PollingDuplexElement, System.ServiceModel.PollingDuplex" />
  </bindingElementExtensions>
</extensions>
<behaviors>
  <serviceBehaviors>
    <behavior name="GameStreamServiceBehavior">
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceThrottling maxConcurrentSessions="2147483647" />
      <serviceMetadata httpGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <customBinding>
    <binding name="pollingDuplexBinding">
      <binaryMessageEncoding />
      <pollingDuplex maxPendingSessions="2147483647" maxPendingMessagesPerSession="2147483647" inactivityTimeout="02:00:00" serverPollTimeout="00:05:00" />
      <httpTransport />
    </binding>
  </customBinding>
</bindings>
<services>
  <service name="WcfServer.Service" behaviorConfiguration="GameStreamServiceBehavior">
    <endpoint address="" binding="customBinding" bindingConfiguration="pollingDuplexBinding" contract="WcfServer.IService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>
  

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

1. Как настроена привязка HTTP для этого сайта в IIS?

2. это весь файл с конфигурацией. Где я должен найти привязку HTTP?

3. В диспетчере IIS: щелкните правой кнопкой мыши на сайте, на котором размещена эта служба, выберите «Редактировать привязки …» и посмотрите, что там написано для HTTP, особенно в столбце «IP-адрес».

4. О, супер! ServiceGuy. Вы можете написать ответ, и я сделаю 1 для вас.

Ответ №1:

Вы должны проверить привязки сайта в IIS. Возможно, что привязка HTTP к порту 5659 настроена только для определенного заголовка хоста («localhost») или определенного IP-адреса (не 93.4.18.3). Это объяснило бы поведение, которое вы получаете.