У нас есть служба WCF, развернутая на сервере Windows 2003, с некоторыми проблемами. Конфигурация использует wsHttpBinding
, и мы указываем IP-адрес. Службы размещаются службой Windows.
Когда мы запускаем службу, большую часть времени она получает неправильный IP-адрес. Несколько раз он привязывался к правильному адресу только для того, чтобы сбросить эту привязку и перейти на другой адрес (их 2), связанный с сетевой картой после непродолжительной обработки.
В настоящее время используется порт 80 (мы настроили IIS для привязки только к 1 адресу через httpcfg
), хотя мы пробовали использовать разные порты с одинаковыми результатами.
Когда служба Windows начинает размещать службу WCF, свойства показывают, что она привязана к правильному адресу; однако tcpview показывает, что он действительно прослушивает неправильный адрес.
Вот часть конфигурации, которая устанавливает baseAddress. Тот, к которому привязывают, в конечном итоге оказывается .4 вместо .9
<services>
<service name="Service.MyService"
behaviorConfiguration="serviceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://xx.xx.xx.9:80/" />
</baseAddresses>
</host>
<endpoint address="MyService"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IMyService"
contract="Service.IMyService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
- Есть ли какая-то другая конфигурация, которую нужно установить?
- Есть ли инструмент, который может помочь отследить, где он привязан к неправильному адресу?