У меня есть приложение OOB с веб-браузером.
Источник веб-браузера связан с URI, определенным мной. URI имеет путь к веб-странице с моего сервера, на которой отображается файл PDF с жесткого диска.
Обратите внимание, что все это делается в локальной сети.
Пример URI: uri = new 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"; } }
В первый раз, когда я устанавливаю исходный текст WebBrowser, он отображает PDF. Но когда я устанавливаю URI один раз, приложение выдает исключение: пытается отозвать цель удаления, которая не была зарегистрирована (исключение из HRESULT: 0x80040100).
Я провел несколько тестов и вот результаты:
1º новый Ури (@ "http://ServerName/ProjectName/PDFViewer.aspx?pdf=somePDF.pdf");
2º новый Uri (@ "http://ServerName/ProjectName/PDFViewer.aspx?pdf=someOtherPDF.pdf"); -> ошибка
1º новый Ури (@ "http://ServerName/ProjectName/PDFViewer.aspx?pdf=somePDF.pdf");
2º новый Uri (@ "http://www.google.com"); -> ошибка
1º новый Ури (@ "http://www.google.com");
2º новый Ури (@ "http://www.microsoft.com");
2º новый Ури (@ "http://ServerName/ProjectName/PDFViewer.aspx?pdf=somePDF.pdf");
3º новый Uri (@ "http://ServerName/ProjectName/PDFViewer.aspx?pdf=someOtherPDF.pdf"); -> ошибка
Я также забыл сказать, что при запуске приложения из моего браузера (с использованием HTMLHost) страницы отображаются нормально. Открытие страниц с помощью браузера также будет хорошо работать.
Должно быть какая-то проблема с моей страницей aspx. Есть идеи?
Pedro