2010-10-11 95 views
0

我已經有一個oob應用程序和它的webbrowser。Silverlight OOB WebBrowser異常

web瀏覽器源數據綁定與由我所定義的URI。該URI有一個從我的服務器到通過其硬盤顯示PDF文件的網頁的路徑。

請注意,所有這些都是在本地網絡上完成的。

URI例如:URI =新URI(@ 「HTTP://ServerName/ProjectName/PDFViewer.aspx PDF = somePDF.pdf」);

頁後臺代碼:

protected void Page_Load(object sender, EventArgs e) 

    { 

     string myURL = Request.Url.ToString(); 

     string[] ParamArray = Regex.Split(myURL, "pdf="); 

     string Params = ParamArray[ParamArray.Length - 1]; 

     if (Params.Length > 0) 

     { 

      Filename = Regex.Replace(Params, @"//", @"\\"); ; 

      if (File.Exists(Filename)) 

      { 

       Response.ContentType = "Application/pdf"; 

       Response.WriteFile(Filename); //Write the file directly to the HTTP content output stream. 

       Response.End(); 

      } 

      else 

       this.Title = "PDF Not Found"; 

     } 

    } 

    protected void Page_Load(object sender, EventArgs e)  {   string myURL = Request.Url.ToString();   string[] ParamArray = Regex.Split(myURL, "pdf=");   //If the URL has parameters, then get them. If not, return a blank string    string Params = ParamArray[ParamArray.Length - 1];   if (Params.Length > 0)   {    //to the called (src) web page    Filename = Regex.Replace(Params, @"//", @"\\"); ;    if (File.Exists(Filename))    {     Response.ContentType = "Application/pdf";     Response.WriteFile(Filename); //Write the file directly to the HTTP content output stream.     Response.End();    }    else     this.Title = "PDF Not Found";   }  } 

我第一次設置它顯示的PDF的web瀏覽器源的一切。但是當我第二次設置URI時,應用程序拋出一個異常:嘗試撤銷未註冊的放置目標(來自HRESULT的異常:0x80040100)。

我已經做了一些測試,這裏的結果:

1º新的URI(@ 「HTTP://ServerName/ProjectName/PDFViewer.aspx PDF = somePDF.pdf」);

2º新URI(@ 「HTTP://ServerName/ProjectName/PDFViewer.aspx PDF = someOtherPDF.pdf」); - >錯誤


1º新URI(@ 「?HTTP://ServerName/ProjectName/PDFViewer.aspx PDF = somePDF.pdf」);

2º新Uri(@「http://www.google.com」); - > error


1ºnew Uri(@「http://www.google.com」);

2º新Uri(@「http://www.microsoft.com」);

2º新URI(@ 「HTTP://ServerName/ProjectName/PDFViewer.aspx PDF = somePDF.pdf」);

3º新URI(@ 「HTTP://ServerName/ProjectName/PDFViewer.aspx PDF = someOtherPDF.pdf」); - >錯誤


我還忘了說,從我的瀏覽器中運行應用程序時(使用的HTMLHost)頁面顯示就好了。使用瀏覽器打開頁面也會很好。

它必須是我的aspx頁面的一些問題。有任何想法嗎?

佩德羅

+0

同樣的錯誤,在瀏覽器SL5。本地SL可以正常工作。在真正的網絡服務器上,每次我嘗試重新導航瀏覽器時都會出現此錯誤。 – felickz 2012-04-20 19:32:00

回答

0

我已經設法通過爲每個頁面一個新的瀏覽器來解決這個問題。如果您知道更優雅的解決方案,請分享。

0

我不確定我是否正確地遵循問題/問題,但也許加載頁面異步,然後分配給webbrowser?原諒我,如果我在這裏離開基地。

public void ShowLink(string linkUrl) 
     { 
     if (App.Current.IsRunningOutOfBrowser) 
     { 
      var pageRequest = new WebClient(); 
      pageRequest.DownloadStringCompleted += pageRequest_DownloadStringCompleted; 
      pageRequest.DownloadStringAsync(new Uri(linkUrl, UriKind.Absolute)); 
     } 
     } 

void pageRequest_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
     { 
     webBrowserLink.NavigateToString(e.Result.ToString()); 
     }