Silverlight SecurityException во внутренней сети, а не во внешней - PullRequest
2 голосов
/ 16 декабря 2011

Я размещаю приложение Silverlight на сервере в центре обработки данных.Мой клиент находится в интрасети, и ему нужно приложение, позволяющее ему подключаться к серверу в собственной интрасети.

Сервер клиента также открыт для общего доступа, и я могу заставить приложение Silverlight говоритьк его серверу просто отлично с моей машины (хороший clientaccesspolicy.xml и все такое джаз).Однако это не сработает для него.Приложение Silverlight создает неопределенное SecurityException, когда он пытается получить доступ к своему собственному серверу из-за своей интрасети.

Если вы визуальный человек, вот хорошая диаграмма ситуации:

Client can't access his own server with my Silverlight app

(Зеленые подключения через Интернет, а красный - сбой подключения к интрасети.)

Мы оба используем один и тот же URI для доступа к серверу, и у него есть оба моихСервер Silverlight и его сервер интрасети добавлены в его список «Надежных сайтов».

Исключение безопасности выглядит следующим образом:

System.Security.SecurityException ---> System.Security.SecurityException: [Arg_SecurityException]
Arguments: 
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=5.0.61118.00&File=mscorlib.dll&Key=Arg_SecurityException
   at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
   at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassa.<EndGetResponse>b__9(Object sendState)
   at System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__1(Object sendState)
   --- End of inner exception stack trace ---
   at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
   at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
   at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)

Я нахожусь в тупике.Это похоже на проблему между зонами, но, опять же, оба сайта находятся в одной зоне «Надежные сайты».Чего мне не хватает?

РЕДАКТИРОВАТЬ: Стоит также упомянуть, что он использовал Fiddler для диагностики проблемы.Интересно, что его машина не проверяет файл clientaccesspolicy.xml и даже не пытается связаться с сервером.

1 Ответ

1 голос
/ 19 декабря 2011

Оказывается, клиент фактически имел свой собственный сервер в зоне локальной интрасети, а мой сервер в доверенной зоне.Он переместил мой сервер в зону локальной интрасети, и он начал работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...