Can error reporting works on web applications?[solved]

.NET obfuscator and automated error reporting

Moderators: Luke Jefferson, melvyn.harbour, dom.smith

Can error reporting works on web applications?[solved]

Postby xavier » Thu Sep 29, 2011 11:11 am

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.
xavier
 
Posts: 4
Joined: Thu Sep 29, 2011 11:07 am

partial answer

Postby xavier » Thu Sep 29, 2011 1:32 pm

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
xavier
 
Posts: 4
Joined: Thu Sep 29, 2011 11:07 am

Postby Brian Donahue » Thu Sep 29, 2011 5:54 pm

Or if you precompile the website and cerate an entry point for the resulting DLL as described here:
http://www.red-gate.com/supportcenter/C ... rtAssembly
Brian Donahue
 
Posts: 6668
Joined: Mon Aug 23, 2004 10:48 am

Postby xavier » Fri Sep 30, 2011 1:45 pm

Thank you for your help
Regards,

Xavier
xavier
 
Posts: 4
Joined: Thu Sep 29, 2011 11:07 am

Postby Brian Donahue » Thu Oct 06, 2011 11:02 am

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
 
Posts: 6668
Joined: Mon Aug 23, 2004 10:48 am

Postby Brian Donahue » Thu Oct 06, 2011 1:13 pm

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
 
Posts: 6668
Joined: Mon Aug 23, 2004 10:48 am

Postby Brian Donahue » Fri Oct 07, 2011 1:46 pm

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
 
Posts: 6668
Joined: Mon Aug 23, 2004 10:48 am


Return to SmartAssembly 6

Who is online

Users browsing this forum: No registered users and 0 guests