Междоменная исключительная ситуация Silverlight-to-WCF, но файл clientaccesspolicy.xml успешно читается
clientaccesspolicy.xml
:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*" />
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
crossdomain.xml
:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy>
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*" secure="true" />
</cross-domain-policy>
Ничего особенного в этом нет, это стандартная настройка, которую используют миллионы сервисов WCF, чтобы клиенты Silverlight имели к ним доступ. К сожалению, эта установка не работает в реальной среде, в которой я развернут. Предварительная производственная среда, используемая для тестирования развертывания, настроена идентично для работы (или так утверждают системные администраторы), и там все отлично работает, поэтому я так растерялся.
У меня был один из системных администраторов проследить запрос от клиента Silverlight, используя HTTPDebuggerPro, и он показывает, что клиент получает оба clientaccesspolicy.xml
а также crossdomain.xml
без проблем (HTTP-статус 200). Однако, после запроса этих файлов, клиент пытается позвонить в службу и сразу же получает CrossDomainException
,
Я также попытался заставить системных администраторов добавить URL-адрес службы WCF в список "Разрешенные сайты" Internet Explorer на поле, на котором размещен клиент Silverlight (согласно последнему предложению последнего абзаца из http://blogs.msdn.com/b/fiddler/archive/2010/11/22/fiddler-and-silverlight-cross-zone-cross-domain-requests.aspx), но это тоже не сработало.
HALP!