Unhandled Exceptions & Framesets

T

terry

Hi,
Question:
When using Framesets and Server.Transfer in the
Application_Error event handler is there a mechanism to
get the error page to display in the total view of the
browser not just in the offending frame?

Overview:
I have an application in which I am using framesets. When
an Unhandled exception occurs I try to handle it
gracefully by transfering to an error handling page as
follows:

Global.asax.cs...
protected void Application_Error(Object sender, EventArgs
e)
{
Server.Transfer("ErrorPage.aspx");
}

The problem is that the ErrorPage.aspx is only displayed
in the offending frame not the complete window of the
browser.

Thanks in advance for your help!!!
Terry
 
V

Vidar Petursson

Hi

You have to return a client script that redirects

<script language="JavaScript">
top.location.href = "errorpage.aspx";
</script>

--
Best Regards
Vidar Petursson
==============================
Microsoft Internet Client & Controls MVP
==============================
 
T

terry

Hi,

I tried the following...

web.config files contains the entry:
<customErrors mode="On"></customErrors>

global.asax contains the following:
protected void Application_Error(Object sender, EventArgs
e)
{
System.Web.UI.Page page = (System.Web.UI.Page)
HttpContext.Current.Handler;
string script = "<script>";
script += "top.location.href =
\"ErrorPage.aspx\";";
script += "</script>";
page.RegisterStartupScript("OnStartup", script);

}


The ErrorPage.aspx is not being displayed but I am instead
receving the standard Microsoft error page as below:


Runtime Error
Description: An application error occurred on the server.
The current custom error settings for this application
prevent the details of the application error from being
viewed.

Details: To enable the details of this specific error
message to be viewable on the local server machine, please
create a <customErrors> tag within a "web.config"
configuration file located in the root directory of the
current web application. This <customErrors> tag should
then have its "mode" attribute set to "RemoteOnly". To
enable the details to be viewable on remote machines,
please set "mode" to "Off".


<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly"/>
</system.web>
</configuration>


Notes: The current error page you are seeing can be
replaced by a custom error page by modifying
the "defaultRedirect" attribute of the application's
<customErrors> configuration tag to point to a custom
error page URL.


<!-- Web.Config Configuration File -->

<configuration>
<system.web>
<customErrors mode="On"
defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
 
B

Bassel Tabbara [MSFT]

Hello Terry,
To open the window you can use the following script on onload Event:

<script>
window.open (" ErrorPage.aspx", "newwin", "fullscreen="yes");
window.opener = self;
self.close();
</script>

You will use the same method by registering the Script using the
page.RegisterStartupScript.
The script will be in the ErrorPage.aspx that you are opening. This code
will open a new window for the error message
and close the one that has frame.

For reference:

onload Event
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/ref
erence/events/onload.asp

window Object
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/ref
erence/objects/obj_window.asp

open Method
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/ref
erence/methods/open_0.asp

Please let me know if this answers your question.

Thanks,
Bassel Tabbara
Microsoft, ASP.NET

This posting is provided "AS IS", with no warranties, and confers no rights.



--------------------
| Content-Class: urn:content-classes:message
| From: "terry" <[email protected]>
| Sender: "terry" <[email protected]>
| References: <[email protected]>
<[email protected]>
| Subject: Re: Unhandled Exceptions & Framesets
| Date: Wed, 2 Jul 2003 10:53:42 -0700
| Lines: 128
| Message-ID: <[email protected]>
| MIME-Version: 1.0
| Content-Type: text/plain;
| charset="iso-8859-1"
| Content-Transfer-Encoding: 7bit
| X-Newsreader: Microsoft CDO for Windows 2000
| Thread-Index: AcNAwt/3YeorCd18Roa9DzMnVw3LRQ==
| X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| Path: cpmsftngxa09.phx.gbl
| Xref: cpmsftngxa09.phx.gbl microsoft.public.dotnet.framework.aspnet:31800
| NNTP-Posting-Host: TK2MSFTNGXA13 10.40.1.165
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Hi,
|
| I tried the following...
|
| web.config files contains the entry:
| <customErrors mode="On"></customErrors>
|
| global.asax contains the following:
| protected void Application_Error(Object sender, EventArgs
| e)
| {
| System.Web.UI.Page page = (System.Web.UI.Page)
| HttpContext.Current.Handler;
| string script = "<script>";
| script += "top.location.href =
| \"ErrorPage.aspx\";";
| script += "</script>";
| page.RegisterStartupScript("OnStartup", script);
|
| }
|
|
| The ErrorPage.aspx is not being displayed but I am instead
| receving the standard Microsoft error page as below:
|
|
| Runtime Error
| Description: An application error occurred on the server.
| The current custom error settings for this application
| prevent the details of the application error from being
| viewed.
|
| Details: To enable the details of this specific error
| message to be viewable on the local server machine, please
| create a <customErrors> tag within a "web.config"
| configuration file located in the root directory of the
| current web application. This <customErrors> tag should
| then have its "mode" attribute set to "RemoteOnly". To
| enable the details to be viewable on remote machines,
| please set "mode" to "Off".
|
|
| <!-- Web.Config Configuration File -->
|
| <configuration>
| <system.web>
| <customErrors mode="RemoteOnly"/>
| </system.web>
| </configuration>
|
|
| Notes: The current error page you are seeing can be
| replaced by a custom error page by modifying
| the "defaultRedirect" attribute of the application's
| <customErrors> configuration tag to point to a custom
| error page URL.
|
|
| <!-- Web.Config Configuration File -->
|
| <configuration>
| <system.web>
| <customErrors mode="On"
| defaultRedirect="mycustompage.htm"/>
| </system.web>
| </configuration>
|
|
|
|
|
|
|
|
|
|
|
|
|
| >-----Original Message-----
| >Hi
| >
| >You have to return a client script that redirects
| >
| ><script language="JavaScript">
| >top.location.href = "errorpage.aspx";
| ></script>
| >
| >--
| >Best Regards
| > Vidar Petursson
| > ==============================
| >Microsoft Internet Client & Controls MVP
| > ==============================
| >| >> Hi,
| >> Question:
| >> When using Framesets and Server.Transfer in the
| >> Application_Error event handler is there a mechanism to
| >> get the error page to display in the total view of the
| >> browser not just in the offending frame?
| >>
| >> Overview:
| >> I have an application in which I am using framesets.
| When
| >> an Unhandled exception occurs I try to handle it
| >> gracefully by transfering to an error handling page as
| >> follows:
| >>
| >> Global.asax.cs...
| >> protected void Application_Error(Object sender,
| EventArgs
| >> e)
| >> {
| >> Server.Transfer("ErrorPage.aspx");
| >> }
| >>
| >> The problem is that the ErrorPage.aspx is only displayed
| >> in the offending frame not the complete window of the
| >> browser.
| >>
| >> Thanks in advance for your help!!!
| >> Terry
| >
| >
| >.
| >
|
 
T

terry

Hi Bassel,

Thanks for your reply. I have not tried this yet but I
want to make sure that we are both on the same page.

My goal is that I have an application making use of
Framesets. When an Unhandled exception occurs I would
like to display a custom error page (a page I create) in
the same browser as the original application but display
in the full view of the browser not just in the offending
frame (which appears to be the default). Will this
accomplish this?

Thanks again, I really appreciate your help.
Terry
-----Original Message-----
Hello Terry,
To open the window you can use the following script on onload Event:

<script>
window.open ("
ErrorPage.aspx", "newwin", "fullscreen="yes");
 
B

Bassel Tabbara [MSFT]

Hello Terry,
Well you can put a link which specify to open the page in the same window
as full opened in the same window.
The method that I described earlier is that you need to open a new window
since you have to use Window.Open.

Please let me know if you are not satisfied with this solution.

Thanks,
Bassel Tabbara
Microsoft, ASP.NET

This posting is provided "AS IS", with no warranties, and confers no rights.


--------------------
| Content-Class: urn:content-classes:message
| From: "terry" <[email protected]>
| Sender: "terry" <[email protected]>
| References: <[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
| Subject: Re: Unhandled Exceptions & Framesets
| Date: Wed, 2 Jul 2003 14:05:51 -0700
| Lines: 231
| Message-ID: <[email protected]>
| MIME-Version: 1.0
| Content-Type: text/plain;
| charset="iso-8859-1"
| Content-Transfer-Encoding: 7bit
| X-Newsreader: Microsoft CDO for Windows 2000
| Thread-Index: AcNA3bgsaQw2Y1BJSVyw5Ci5Cc/+yQ==
| X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300
| Newsgroups: microsoft.public.dotnet.framework.aspnet
| Path: cpmsftngxa09.phx.gbl
| Xref: cpmsftngxa09.phx.gbl microsoft.public.dotnet.framework.aspnet:31851
| NNTP-Posting-Host: TK2MSFTNGXA12 10.40.1.164
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
|
| Hi Bassel,
|
| Thanks for your reply. I have not tried this yet but I
| want to make sure that we are both on the same page.
|
| My goal is that I have an application making use of
| Framesets. When an Unhandled exception occurs I would
| like to display a custom error page (a page I create) in
| the same browser as the original application but display
| in the full view of the browser not just in the offending
| frame (which appears to be the default). Will this
| accomplish this?
|
| Thanks again, I really appreciate your help.
| Terry
|
| >-----Original Message-----
| >Hello Terry,
| >To open the window you can use the following script on
| onload Event:
| >
| > <script>
| > window.open ("
| ErrorPage.aspx", "newwin", "fullscreen="yes");
| > window.opener = self;
| > self.close();
| > </script>
| >
| >You will use the same method by registering the Script
| using the
| >page.RegisterStartupScript.
| >The script will be in the ErrorPage.aspx that you are
| opening. This code
| >will open a new window for the error message
| >and close the one that has frame.
| >
| >For reference:
| >
| >onload Event
| >http://msdn.microsoft.com/library/default.asp?
| url=/workshop/author/dhtml/ref
| >erence/events/onload.asp
| >
| >window Object
| >http://msdn.microsoft.com/library/default.asp?
| url=/workshop/author/dhtml/ref
| >erence/objects/obj_window.asp
| >
| >open Method
| >http://msdn.microsoft.com/library/default.asp?
| url=/workshop/author/dhtml/ref
| >erence/methods/open_0.asp
| >
| >Please let me know if this answers your question.
| >
| >Thanks,
| >Bassel Tabbara
| >Microsoft, ASP.NET
| >
| >This posting is provided "AS IS", with no warranties, and
| confers no rights.
| >
| >
| >
| >--------------------
| >| Content-Class: urn:content-classes:message
| >| From: "terry" <[email protected]>
| >| Sender: "terry" <[email protected]>
| >| References: <[email protected]>
| ><[email protected]>
| >| Subject: Re: Unhandled Exceptions & Framesets
| >| Date: Wed, 2 Jul 2003 10:53:42 -0700
| >| Lines: 128
| >| Message-ID: <[email protected]>
| >| MIME-Version: 1.0
| >| Content-Type: text/plain;
| >| charset="iso-8859-1"
| >| Content-Transfer-Encoding: 7bit
| >| X-Newsreader: Microsoft CDO for Windows 2000
| >| Thread-Index: AcNAwt/3YeorCd18Roa9DzMnVw3LRQ==
| >| X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300
| >| Newsgroups: microsoft.public.dotnet.framework.aspnet
| >| Path: cpmsftngxa09.phx.gbl
| >| Xref: cpmsftngxa09.phx.gbl
| microsoft.public.dotnet.framework.aspnet:31800
| >| NNTP-Posting-Host: TK2MSFTNGXA13 10.40.1.165
| >| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
| >|
| >| Hi,
| >|
| >| I tried the following...
| >|
| >| web.config files contains the entry:
| >| <customErrors mode="On"></customErrors>
| >|
| >| global.asax contains the following:
| >| protected void Application_Error(Object sender,
| EventArgs
| >| e)
| >| {
| >| System.Web.UI.Page page = (System.Web.UI.Page)
| >| HttpContext.Current.Handler;
| >| string script = "<script>";
| >| script += "top.location.href =
| >| \"ErrorPage.aspx\";";
| >| script += "</script>";
| >| page.RegisterStartupScript("OnStartup", script);
| >|
| >| }
| >|
| >|
| >| The ErrorPage.aspx is not being displayed but I am
| instead
| >| receving the standard Microsoft error page as below:
| >|
| >|
| >| Runtime Error
| >| Description: An application error occurred on the
| server.
| >| The current custom error settings for this application
| >| prevent the details of the application error from being
| >| viewed.
| >|
| >| Details: To enable the details of this specific error
| >| message to be viewable on the local server machine,
| please
| >| create a <customErrors> tag within a "web.config"
| >| configuration file located in the root directory of the
| >| current web application. This <customErrors> tag should
| >| then have its "mode" attribute set to "RemoteOnly". To
| >| enable the details to be viewable on remote machines,
| >| please set "mode" to "Off".
| >|
| >|
| >| <!-- Web.Config Configuration File -->
| >|
| >| <configuration>
| >| <system.web>
| >| <customErrors mode="RemoteOnly"/>
| >| </system.web>
| >| </configuration>
| >|
| >|
| >| Notes: The current error page you are seeing can be
| >| replaced by a custom error page by modifying
| >| the "defaultRedirect" attribute of the application's
| >| <customErrors> configuration tag to point to a custom
| >| error page URL.
| >|
| >|
| >| <!-- Web.Config Configuration File -->
| >|
| >| <configuration>
| >| <system.web>
| >| <customErrors mode="On"
| >| defaultRedirect="mycustompage.htm"/>
| >| </system.web>
| >| </configuration>
| >|
| >|
| >|
| >|
| >|
| >|
| >|
| >|
| >|
| >|
| >|
| >|
| >|
| >| >-----Original Message-----
| >| >Hi
| >| >
| >| >You have to return a client script that redirects
| >| >
| >| ><script language="JavaScript">
| >| >top.location.href = "errorpage.aspx";
| >| ></script>
| >| >
| >| >--
| >| >Best Regards
| >| > Vidar Petursson
| >| > ==============================
| >| >Microsoft Internet Client & Controls MVP
| >| > ==============================
| >| >| >| >> Hi,
| >| >> Question:
| >| >> When using Framesets and Server.Transfer in the
| >| >> Application_Error event handler is there a mechanism
| to
| >| >> get the error page to display in the total view of
| the
| >| >> browser not just in the offending frame?
| >| >>
| >| >> Overview:
| >| >> I have an application in which I am using
| framesets.
| >| When
| >| >> an Unhandled exception occurs I try to handle it
| >| >> gracefully by transfering to an error handling page
| as
| >| >> follows:
| >| >>
| >| >> Global.asax.cs...
| >| >> protected void Application_Error(Object sender,
| >| EventArgs
| >| >> e)
| >| >> {
| >| >> Server.Transfer("ErrorPage.aspx");
| >| >> }
| >| >>
| >| >> The problem is that the ErrorPage.aspx is only
| displayed
| >| >> in the offending frame not the complete window of the
| >| >> browser.
| >| >>
| >| >> Thanks in advance for your help!!!
| >| >> Terry
| >| >
| >| >
| >| >.
| >| >
| >|
| >
| >
| >
| >.
| >
|
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,598
Members
45,151
Latest member
JaclynMarl
Top