我正在写一个小的silverlight应用程序来试试silverlight。我的想法是制作一个小应用程序,检查网站是否在线。它通过用户输入一个URL来工作,我的应用程序每5分钟检查一次它的正常运行时间。从silverlight呼叫外部网站
但是,当我做网络请求时,我会得到下面的安全例外。阅读http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest(VS.95).aspx它似乎表明silverlight不允许跨域连接。那么没有办法让我的想法在silverlight中工作吗?
示例代码:
WebRequest testHTTP = null;
try
{
testHTTP = WebRequest.Create(serverToCheck);
}
catch (UriFormatException ufe)
{
try
{
testHTTP = WebRequest.Create("http://" + serverToCheck);
}
catch (UriFormatException ufe1)
{
MessageBox.Show("Invalid server address");
}
}
if (testHTTP != null)
{
testHTTP.BeginGetResponse(new AsyncCallback(doCheck), testHTTP);
}
void doCheck(IAsyncResult a)
{
try
{
HttpWebRequest req = (HttpWebRequest)a.AsyncState;
HttpWebResponse res = (HttpWebResponse)req.EndGetResponse(a);
Dispatcher.BeginInvoke(() => HTTPStatus.Content = "OK");
}
catch (Exception ex)
{
//handle exception
}
}
异常: {System.Security.SecurityException ---> System.Security.SecurityException:安全错误。 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 internal exception stack trace --- at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod,Object state) at System.Net.Browser.BrowserHttpWebRequest。 EndGetResponse(IAsyncResult asyncResult) at monitor.Home.doCheck(IAsyncResult a)}