clientaccesspolicy.xml не запрашивается в первый раз в некоторых браузерах

У меня возникла странная проблема с междоменным вызовом веб-сервиса в Silverlight 4.

Сразу после запуска приложение вызывает веб-сервис на сервере тот же хост, с которого оно было загружено, но на другом порту (например, приложение находится по адресу http://www.mydomain.com:80 , а веб-сервис - по адресу http: // www.mydomain.com:81). SSL не используется. Хост предоставляет правильный файл clientaccesspolicy.xml, и все работает правильно большую часть времени (например, 99,9%).

Однако в некоторых случаях браузер не запрашивает clientaccesspolicy.xml, и в результате вызов веб-службы блокируется и завершается ошибкой с междоменной ошибкой.

В типичном случае это последовательность запросов, которые вы видите с помощью инструментов разработчика Fiddler или Chrome:

  • index.html (страница, на которой размещено приложение silverlight)
  • silverlight.js
  • application.xap
  • ] clientaccesspolicy.xml (запрошен и загружен правильно)
  • вызов веб-службы

Однако в некоторых случаях вы видите только

  • index.html (страница, на которой размещено приложение silverlight)
  • приложение silverlight.js
  • . xap
  • -> ошибка перекрестного домена (не запрошена политика клиентского доступа, нет вызова веб-службы).

Это происходит только на небольшом количестве машин (все под управлением Windows 7), если выполняются все эти условия:

  • приложение, работающее в Chrome, Firefox или вне браузера (IE всегда работает )
  • это первая загрузка страницы (т.е. если вы нажмете кнопку перезагрузки браузера, проблема исчезнет. Закройте / перезапустите браузер, и в первый раз проблема не исчезнет)
  • нет Fiddler работает (если вы пропустите трафик через Fiddler, проблема исчезнет). Однако инструменты разработчика Chrome не действуют.
  • машина находится внутри того же домена , что и сервер приложения . Если вы получаете доступ к странице из внешней сети (с той же машины), проблема не в этом.

На этих машинах, при тех обстоятельствах, проблема воспроизводима на 100%.

Что могло быть причиной этого? Что я могу предпринять, чтобы отследить проблему?

7
задан Francesco De Vittori 21 October 2011 в 09:04
поделиться