Tôi đang POST dữ liệu đến một máy chủ và thực hiện thành công BeginGetRequestStream, sau đó EndGetRequestStream, ghi dữ liệu POST của tôi để điền vào RequestStream và gọi BeginGetResponse.Silverlight SecurityException
BeginGetResponse trả về thành công và sau đó tôi gọi:
Dim response As HttpWebResponse = CType(MyHttpRequest.EndGetResponse(asynchronousResult), HttpWebResponse)
Dòng này ném Lỗi folloing SecurityException:
{System.Security.SecurityException ---> System.Security.SecurityException: Security error.
at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.b__4(Object sendState)
at System.Net.Browser.AsyncHelper.<>c__DisplayClass2.b__0(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 EtsyV2NetSL.WebQuery.POST_ResponseCallback(IAsyncResult asynchronousResult)}
Vì vậy, suy nghĩ đầu tiên của tôi là tôi đã bị chặn bởi các máy chủ với clientaccesspolicy của họ .xml hoặc crossdomain.xml. Tôi đã bắn lên Fiddler và thấy như sau:
GET http://openapi.etsy.com/clientaccesspolicy.xml > 596 (text/xml)
GET http://openapi.etsy.com/crossdomain.xml > 200 OK (application/xml)
Vì vậy, tôi đã kiểm tra crossdomain.xml của họ và các thiết lập xuất hiện ok:
<!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>
tôi đã trúng một ngõ cụt trong cố gắng giải quyết này vấn đề. Tôi đang chạy ứng dụng thử nghiệm trên máy tính dev của tôi từ VS.
Có ai có bất kỳ ý tưởng nào về lý do tại sao Silverlight sẽ ném lỗi này?
Cảm ơn
Đúng, câu lệnh "" trong tệp clientaccesspolicy.xml đã khắc phục sự cố trong trường hợp của tôi. Cảm ơn bạn đã giúp đỡ! –