Can error reporting works on web applications?[solved]

xavierxavier Posts: 6
edited October 7, 2011 8:46AM in SmartAssembly
Hi,

Can somebody tell me if it's possible to use the error reporting feature with an ASP.Net MVC application?

Regards,

Xavier
Regards,

Xavier

Comments

  • 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
  • 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
  • Thank you for your help
    Regards,

    Xavier
  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    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 DonahueBrian Donahue Posts: 6,590 Bronze 1
    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 DonahueBrian Donahue Posts: 6,590 Bronze 1
    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.
Sign In or Register to comment.