头大,安全性错误,解决不了
1、有一台机器192.168.0.1,上面运行一个 数据.exe程序,此exe程序会通过socket连接,把一份xml数据发送到浏览器的8080端口上。(此时可以另外打开一个IE浏览器,然后输入http://192.168.0.1:8080/test 查看返回到的xml数据)
2、有另外一台机器192.168.0.2,运行silverlight程序,其中有以下代码:
WebClient wc = new WebClient();
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted_one);
wc.DownloadStringAsync(new Uri("http://192.168.0.1:8080/test"));
private void wc_DownloadStringCompleted_one(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
}
}
返回以下错误:
InnerException{System.Security.SecurityException: 安全性错误。
位于 System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
位于 System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
位于 System.Net.Browser.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState)}System.Exception {System.Security.SecurityException}
这个问题怎么解决啊?已经2天了,一点进展都没有,急死了,希望有经验的人士帮帮忙啊,谢谢!!!
[解决办法]
添加跨域文件测试了么?这个内部错误信息很难判断具体的错误点。你也可以尝试使用Fiddler抓包看看HTTP层返回错误是什么?
[解决办法]
楼上的兄弟正解,添加一个clientaccesspolicy.xml就可以解决了。
格式如下
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource include-subpaths="true" path="/"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
[解决办法]
wc.DownloadStringAsync(new Uri("http://192.168.0.1:8080/test"));
这样去模拟一个打开页面的过程? 为什么不用一个WebSerivces或者WCF来提供数据呢