5

サーバーにデータをPOSTしていて、BeginGetRequestStream、次にEndGetRequestStreamを正常に実行し、POSTデータをRequestStreamに書き込み、BeginGetResponseを呼び出しています。

BeginGetResponseが正常に戻り、次を呼び出します。

Dim response As HttpWebResponse = CType(MyHttpRequest.EndGetResponse(asynchronousResult), HttpWebResponse)

この行は、次のSecurityExceptionエラーをスローします。

{System.Security.SecurityException ---> System.Security.SecurityException:セキュリティエラー。
System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)atSystem.Net.Browser.BrowserHttpWebRequest
。<>c__DisplayClass5.b__4(Object sendState)
atSystem.Net.Browser.AsyncHelper。<>c__DisplayClass2.b__0(Object sendState)

---内部例外スタックトレースの終了---
System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod、Object state)
at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at EtsyV2NetSL.WebQuery.POST_ResponseCallback( IAsyncResult非同期結果)}

そのため、最初に考えたのは、clientaccesspolicy.xmlまたはcrossdomain.xmlを使用してサーバーによってブロックされていることでした。Fiddlerを起動して、次のことを確認しました。

GET http://openapi.etsy.com/clientaccesspolicy.xml > 596 (text/xml)
GET http://openapi.etsy.com/crossdomain.xml > 200 OK (application/xml)

そこで、crossdomain.xmlを確認したところ、設定は正常に表示されました。

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
   <allow-access-from domain="*"/>
</cross-domain-policy>

私はこの問題を解決しようとして行き詰まりました。VSの開発マシンでテストアプリを実行しています。

Silverlightがこのエラーをスローする理由について誰かが何か考えを持っていますか?

ありがとう

4

2 に答える 2

1

今日は非常によく似た問題に対処しましたが、HTTP POSTの代わりに、WCFサービス呼び出しを実行しようとしていました。

これが私のコードに書いたコメントです-それが役立つほど明確でない場合は私に知らせてください。

// NB: Cross-domain bug
// If you end up here with a System.Security.SecurityException "Security error."
// Check that you're not trying to cross zones when making a service call
// (eg: Accessing Trigger Driver TimeSource service on http://IASWEB01/ when accessing the site via usertest.local
//  or any other URI with dots in it - yes it seems crazy)

これはセキュリティの「機能」のようです。WCF呼び出しでは、Silverlightクライアントがターゲットホストからclientaccesspolicy.xmlをフェッチしようとする前でも、この例外が発生しました。本当の解決策が見えない非常に厄介な問題!

于 2010-11-18T14:32:45.953 に答える
1

クライアントアクセスポリシーの問題のようです。これを確認してください。

http://forums.silverlight.net/forums/p/26566/90867.aspx

それは私のために働いた。

于 2011-01-03T16:14:54.300 に答える