我正在将数据发布到服务器并成功执行 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)
在 System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.b__4(Object sendState)
在 System.Net.Browser.AsyncHelper.<>c__DisplayClass2.b__0(Object sendState)--- 内部异常堆栈跟踪结束 ---
在 System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
在 System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
在 EtsyV2NetSL.WebQuery.POST_ResponseCallback( IAsyncResult asynchronousResult)}
所以我的第一个想法是我被服务器用他们的 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 会抛出这个错误?
谢谢