Не може да се комуникира с WCF услуга с тази настройка: IIS с WCF услуга зад Microsoft Forefront/TMG със SSL сертификат

Имам WCF услуга, работеща зад Microsoft Forefront/TMG. Услугата е на IIS, използвайки порт 80. TMG слуша порт 443. TMG има инсталиран SSL сертификат. Настройката на TMG се извършва от нашия ИТ отдел. Имам достъп до https://mypublicsite:443/myservice.svc и https://mypublicsite:443/myservice.svc?wsdl. Въпреки това, ако използвам тестовия клиент на Visual Studio: WCFTestClient.exe (или който и да е клиент) - получавам изчакване, когато правя извикване с тази грешка:

Неуспешно извикване на услугата. Възможни причини: Услугата е офлайн или недостъпна; конфигурацията от страна на клиента не съответства на проксито; съществуващият прокси е невалиден. Обърнете се към трасирането на стека за повече подробности. Можете да опитате да възстановите, като стартирате нов прокси, възстановите конфигурацията по подразбиране или обновите услугата.

Заседнах точно сега. При достъп до услугата чрез http://myinternalsite:80/myservice.svc от мрежата всичко работи. Някой, който има решение? Или начин за намиране на решение?


person Morten Frederiksen    schedule 23.05.2012    source източник


Отговори (3)


Може да е:

  • Блокиран си от защитна стена (опитайте с telnet)
  • Че има нещо нередно с настройката на TMG (опитайте да получите достъп до услугата wsdl от браузъра)
  • Че вашата wcf конфигурация е настроена да използва / не използва транспортна сигурност (проверете дали конфигурационните файлове на сървъра и клиента съвпадат)
person Shiraz Bhaiji    schedule 23.05.2012

Намерих решение. Имам fiddler2, за да покаже съдържанието на мрежовите пакети. И това ме насочи към решение. Причините за 500 отговора се дължат на несъответствие на WCF AddressFilter. Това беше коригирано чрез добавяне на това към моята услуга: [ServiceBehavior(AddressFilterMode=AddressFilterMode.Any)]

Това е статията, която ми помогна: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/b5ae495b-f5fb-4eed-ae21-2b2280d4fec3/

person Morten Frederiksen    schedule 24.05.2012

Получих тази грешка, когато нямах стойност за нула на Enum, изпратен от услугата. Ако използвате Enums, уверете се, че изпратената стойност е дефинирана. По подразбиране е 0.

[DataContract]
public enum MyEnum // No name for value 0 in this enum
{
    [EnumMember]
    Something1=1,
    [EnumMember]
    Something2=2,   
}
person user1500436    schedule 21.01.2013