Problem Displaying HTML file in ASP.NET

tomwalker1949
tomwalker1949 used Ask the Experts™
on
I am doing an ASP.NET project using VB, using Visual Studio 2017.  As part of the project, I am creating a customer report as a .html output file.  When the file has been created, I want to open it in another browser tab or window, so it can be viewed and/or printed.  The file is being created perfectly, but when I do a "response.redirect" command to the full pathname of the file, Google Chrome gives an error "ERR_UNSAFE_REDIRECT".  If I change the pathname from Windows format to "file:///..." format, I get the same error.

When I tried this,

        Dim s As String = "window.open('" & Server.UrlEncode(Report_URL.ToString()) & "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');"
        ClientScript.RegisterStartupScript(Me.GetType(), "script", s, True)

the pop-up window opens OK, but instead of my file, it has a 404-page-not-found error, which shows the requested URL and Physical Path with

Requested URL         http://localhost:62761/MenuAdmin/file:/F:/customer/outbox/OrderStatusReport.html
Physical Path         F:\customer\ASMFG\ASMFG\ASMFG\MenuAdmin\file:\F:\customer\outbox\OrderStatusReport.html

Correct Path is         F:\customer\outbox\OrderStatusReport.html

How do I get ASP.NET to use my file's correct pathname?  Or is there a different place I can create the file that would prevent ASP.NET from mangling its pathname?  Or how would I just print the HTML file to a selected printer and not worry about the screen display part?

Thanks in advance for the help!
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Microsoft Dynamics CRM Consultant
Commented:
Hi,

I assume you have created HTML report and stored on a path you have mentioned. However, your ASP.net application is hosted on temp IIS with a different path. As your report path is not hosted on temp IIS, your asp.net will not be able to find the file.

You can put the HTML file in some folder in the same ASP.net project and use relative path to redirect.

In your case it should be somewhat like this- http://localhost:62761/<newfolder>/OrderStatusReport.html

Makes sense?

Author

Commented:
That is correct -- I am running the project in a debug session through Visual Studio .NET when I received the error.  

When I deploy the project to a production environment however, will the absolute path work with "response.redirect" or "window.open"?  If I create a "reports" folder for the project, that folder will travel to the production environment as well?
Rikin ShahMicrosoft Dynamics CRM Consultant

Commented:
Hi,

Same scenario will apply to production as well.. there has to be a Virtual Directory.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial