1

GET/POST 要求を介してサーバーとやり取りする必要がある Silverlight アプリケーションを作成しています。私のコードは次のようになります。

Uri serviceUri = new Uri(my_URI);
WebClient client = new WebClient();

client.OpenReadCompleted += new OpenReadCompletedEventHandler(OnRequestComplete);
client.OpenReadAsync(serviceUri);

ただし、コールバック関数が呼び出されると、System.Security.SecurityException が発生します。ここで同様のエラーを持つ人々からの複数の質問を読みましたが、それらの問題はすべて、デバッグ中のクロスドメインの問題に起因しているようです。コードを実行するhttp://localhost:...と、ドメインとして実行されるため、それは問題ではないと思います。それがまったく役立つ場合の完全なエラーは次のとおりです。

{System.Security.SecurityException: Security error.
   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__0(Object sendState)}

助けてくれてありがとう。これは非常にイライラする問題でした。

アップデート:

私はそれをたくさんいじり、最終的にすべてが機能するようになりました。100% ではありませんが、結局、clientaccesspolicy.xml ファイルと crossdomain.xml ファイルを想像できるあらゆる場所にコピーして貼り付け、新しい Silverlight プロジェクトを作成し、そこにすべてをコピーしました。他の誰かがこの問題に遭遇した場合、それは私が与えなければならないのと同じくらい多くのアドバイスです:/

4

1 に答える 1

1

ポート番号が一致しないため、同じ生成元ポリシーにまだ違反していると思います。つまり、XAP uri のポートと my_URI ポートが一致しません。したがって、System.Security.SecurityException. XAP に関連する my_URI をホストしてみてください。

または、WCF を使用してサーバーとやり取りしてみてください。

于 2013-04-24T06:02:56.380 に答える