データセンター内のサーバーでSilverlightアプリケーションをホストしています。クライアントはイントラネット上にあり、イントラネット上のサーバーに接続できるようにするにはアプリケーションが必要です。内部ネットワーク上のSilverlight SecurityException(外部ではない)
クライアントのサーバーも一般公開されているので、私のマシン(良いclientaccesspolicy.xmlとそのすべてのジャズ)から自分のサーバーに話すようにSilverlightアプリケーションを入手できます。しかし、彼のためにはうまくいかないでしょう。 Silverlightアプリケーションは、イントラネットの背後から自分のサーバーにアクセスしようとすると、曖昧なSecurityExceptionをスローします。あなたは視覚的な人だ場合
は、ここでの状況の素敵な図です:
(緑の接続は、インターネットを介しており、赤は失敗イントラネット接続である。)
私たちは同じURIを使用してサーバーにアクセスしており、Silverlightサーバーとイントラネットサーバーの両方を「信頼済みサイト」リストに追加しています。
SecurityExceptionが次のようになります。私は死んで終わりだ
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)
。クロスゾーンの問題のように見えますが、両方のサイトが同じ「信頼済みサイト」ゾーンにあります。私は何が欠けていますか?
EDIT: 問題を診断するためにFiddlerを使用したことにも言及する価値があります。面白いことに、彼のマシンはclientaccesspolicy.xmlファイルをチェックせず、サーバーとの通信を試みることさえできません。
関連するサーバーで 'clientaccesspolicy.xml'または' crossdomain.xml'ファイルがありますか? – ChrisF
はい、良いclientaccesspolicy.xmlファイルがあるため、自分のサーバーに接続できます。 – Phil