Silverlight を簡単なサンプル アプリケーションで動作させようとしており、別のコンピューターでレスト サービスを呼び出しています。残りのサービスを持つサーバーには、次のような clientaccesspolicy.xml があります。
<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 に対する要求はありません。C# コードは次のようになります。
public Page()
{
InitializeComponent();
string restUrl = "http://example.com/rest_service.html?action=test_result";
WebClient testService = new WebClient();
testService.DownloadStringCompleted += new DownloadStringCompletedEventHandler(testService_DownloadStringCompleted);
testService.DownloadStringAsync(new Uri(restUrl, UriKind.Absolute));
}
void testService_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
LoadTreeViewWithData(e.Result);
}
}
ただし、常に次のセキュリティ エラーが返されます。
{System.Security.SecurityException ---> System.Security.SecurityException: セキュリティ エラーです。 System.Net.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) で System.Net.BrowserHttpWebRequest.c__DisplayClass5.b__4 (オブジェクト sendState) で System.Net.AsyncHelper.c__DisplayClass2.b__0 (オブジェクト sendState) で --- 内部例外スタック トレースの終了 --- System.Net.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod、オブジェクトの状態) で System.Net.BrowserHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) で System.Net.WebClient.GetWebResponse (WebRequest 要求、IAsyncResult 結果) で System.Net.WebClient.DownloadBitsResponseCallback (IAsyncResult 結果) で}
私は何を間違っていますか?また、なぜセキュリティ エラーが役立つ情報を教えてくれないのでしょうか?