У меня есть клиент и служба WCF, где служба (которая размещена в консольном приложении) перезванивает клиенту, используя очень стандартный WSDualHttpBinding с WSDualHttpSecurityMode.None. Все хорошо и удобно, когда размещено на локальной машине, но как только я перенесу службу на компьютер, отличный от моей локальной машины (но в той же сети), клиент больше не сможет подключиться к службе.
WSDualHttpBinding
WSDualHttpSecurityMode.None
MEX работает нормально, я могу заполучить WSDL и все такое. После захвата исходящего трафика с помощью Fiddler вот что я получил:
POST /chinchillin HTTP/1.1 Content-Type: application/soap+xml; charset=utf-8 Host: 192.168.0.98:8080 Content-Length: 916 Expect: 100-continue Connection: Keep-Alive <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"> <s:Header> <a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence</a:Action> <a:MessageID>urn:uuid:aa317faa-f32e-4cbc-a6a3-5fdbc9f80fe6</a:MessageID> <a:ReplyTo> <a:Address>http://agogolev.ad.alponline.ru/Temporary_Listen_Addresses/f423a1ae-573a-4c14-9a64-c4ed26fc6366/3069625c-d37a-4de2-8f92-e078b51f01d5</a:Address> </a:ReplyTo> <a:To s:mustUnderstand="1">http://192.168.0.98:8080/chinchillin</a:To> </s:Header> <s:Body> <CreateSequence xmlns="http://schemas.xmlsoap.org/ws/2005/02/rm"> <AcksTo> <a:Address>http://agogolev.ad.alponline.ru/Temporary_Listen_Addresses/f423a1ae-573a-4c14-9a64-c4ed26fc6366/3069625c-d37a-4de2-8f92-e078b51f01d5</a:Address> </AcksTo> <Offer> <Identifier>urn:uuid:7d198ab8-4fed-4f62-a76b-6e2ae2a13dda</Identifier> </Offer> </CreateSequence> </s:Body> </s:Envelope> HTTP/1.1 202 Accepted Content-Length: 0 Server: Microsoft-HTTPAPI/2.0 Date: Mon, 08 Feb 2010 08:41:48 GMT
Я попытался отключить брандмауэры на обеих машинах, зарегистрированный URL ACL с netsh -c http add urlacl url=http://+:8080/chinchillin user=domain\user. Ничего из этого не помогло.
netsh -c http add urlacl url=http://+:8080/chinchillin user=domain\user
Как заставить обратные вызовы работать в этом сценарии?
Понял. Сервер, на который я переместил служебную часть моего приложения, не находился в домене AD и не мог разрешить http://agogolev.ad.alponline.ru.
http://agogolev.ad.alponline.ru