将图像从url下载到siverlight c#项目时出现异常

时间:2014-08-18 09:32:20

标签: c# silverlight visual-studio-2012 windows-desktop-gadgets

我搜索了如何在c#中以编程方式为windows 7 / vista制作小工具,最后我下载了一个名为SilverLightGadgetDebugger的可视化工作室解决方案:

  

SilverlightGadgetDebugger项目的目的只是作为   一个调试会话启动器               Silverlight小工具。即使它是一个控制台应用程序项目,它也不会产生任何输出。               相反,每当项目启动时,它将调用SidebarSandboxStarter.exe文件。               此应用程序接收当前解决方案路径作为命令行参数。               它使用此信息连接到已打开指定解决方案的Visual Studio。               SidebarSandboxStarter将调试器从Visual Studio实例附加到Windows边栏               进程(sidebar.exe)。如果该过程未启动,则会启动它。

我添加了一个Image silverlight控件,我试图从这个网址获取图片:

http://lunaf.com/images/moon-phases/lunar_phase_20.jpg

我搜索了如何获取图像,我尝试了这段代码:

private void DownloadImage()
{
        string ImagePath = "http://lunaf.com/images/moon-phases/lunar_phase_20.jpg";
        WebClient client = new WebClient();
        client.OpenReadCompleted += client_OpenReadCompleted;

        if (ImagePath.IndexOf("http") < 0)
        {
            string URL = System.Windows.Browser.HtmlPage.Document.DocumentUri.AbsoluteUri;
            ImagePath = URL.Substring(0, URL.LastIndexOf('/')) + "/" + ImagePath;
        }

        client.OpenReadAsync(new Uri(ImagePath, UriKind.RelativeOrAbsolute), ImagePath);

    }

    void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        try
        {
            BitmapImage ImageToLoad = new BitmapImage();
            ImageToLoad.SetSource(e.Result as Stream);//Here is the exception
            Image1.Source = ImageToLoad;
        }
        catch (Exception ex)
        { }
}

我得到一个例外,它的消息(ex.message):

  

操作期间发生异常,导致结果无效。   检查InnerException是否有异常细节。

内在的例外:

{System.Security.SecurityException ---> System.Security.SecurityException: Security error.
   at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
   at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassa.<EndGetResponse>b__9(Object sendState)
   at System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>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 System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
   at System.Net.WebClient.OpenReadAsyncCallback(IAsyncResult result)}

如何解决这个问题?

0 个答案:

没有答案