| Author |
Message |
xavier
Joined: 29 Sep 2011 Posts: 4
|
Posted: Thu Sep 29, 2011 11:11 am Post subject: Can error reporting works on web applications?[solved] |
|
|
Hi,
Can somebody tell me if it's possible to use the error reporting feature with an ASP.Net MVC application?
Regards,
Xavier
Last edited by xavier on Fri Sep 30, 2011 1:16 pm; edited 1 time in total |
|
| Back to top |
|
 |
xavier
Joined: 29 Sep 2011 Posts: 4
|
Posted: Thu Sep 29, 2011 1:32 pm Post subject: partial answer |
|
|
Because this assembly is a library. these options will not work automatically They will only work if accessed by an
EXE that has been processed by SmartAssembly, or if you call ExceptionReporting.Report (Exception) manually. _________________ Regards,
Xavier |
|
| Back to top |
|
 |
Brian Donahue
Joined: 23 Aug 2004 Posts: 6346 Location: Red Gate Software
|
|
| Back to top |
|
 |
xavier
Joined: 29 Sep 2011 Posts: 4
|
Posted: Fri Sep 30, 2011 1:45 pm Post subject: |
|
|
Thank you for your help _________________ Regards,
Xavier |
|
| Back to top |
|
 |
Brian Donahue
Joined: 23 Aug 2004 Posts: 6346 Location: Red Gate Software
|
Posted: Thu Oct 06, 2011 11:02 am Post subject: |
|
|
I take that back.... you can't use error reporting with the DLL(s) produced by ASPNET_COMPILER.exe except using ExceptionReporting.Report() like Xavier said.
I'm trying to see if there is a better way of doing this where you can get the local variables as well as just the stack trace. _________________ Brian Donahue
Technical Support
Red Gate Software Ltd.
44 (0)870 160 0037 ext 8521
US and CAN 1-866-RED GATE ext 8521 |
|
| Back to top |
|
 |
Brian Donahue
Joined: 23 Aug 2004 Posts: 6346 Location: Red Gate Software
|
Posted: Thu Oct 06, 2011 1:13 pm Post subject: |
|
|
Okay, here's how you make this work for ASP .NET, in a way that will also include the variable values:
- Add a reference to c:\program files\red gate\smartassembly 6\SDK\bin\SmartAssembly.ReportException.dll in the web project
- Open the codebehind file for Global.asax in Notepad (or VS)
- If the method protected void Application_Error(Object sender, EventArgs e) does not exist, create it
- The method should contain these lines
Exception exc = Server.GetLastError().GetBaseException();
SmartAssembly.ReportException.ExceptionReporting.Report(exc);
- Save Global.asax.cs (or vb)
- Use Aspnet_Compiler to create pre-compiled code for the website
(aspnet_compiler -v "/" -p "c:\mywebsite" "c:\mynewwebsite")
- Open the main DLL in a new SmartAssembly project (App_Web_xxx.dll)
- Make sure to use the options to merge the dependent DLLs (especially Global_asax.dll)
- Set up error reporting to report silently
- Build the DLL into a new folder in a "bin" subfolder (c:\mynewSAwebsite\bin)
- Copy all of the files that are not DLLs from the original compiled website to the one you just created
Using this method, you have created a global exception handler that will get the exception stack trace and local variables from the web application if it throws an unhandled exception. _________________ Brian Donahue
Technical Support
Red Gate Software Ltd.
44 (0)870 160 0037 ext 8521
US and CAN 1-866-RED GATE ext 8521 |
|
| Back to top |
|
 |
Brian Donahue
Joined: 23 Aug 2004 Posts: 6346 Location: Red Gate Software
|
Posted: Fri Oct 07, 2011 1:46 pm Post subject: |
|
|
Slight correction to the above: Merging the DLLs seems to break the error reporting, although the applicaiton works fine. If you process all of the DLLs produced by ASP .NET Compiler and deploy them separately, that works much better. _________________ Brian Donahue
Technical Support
Red Gate Software Ltd.
44 (0)870 160 0037 ext 8521
US and CAN 1-866-RED GATE ext 8521 |
|
| Back to top |
|
 |
|