1
votes

I am using Enterprise library 5.0 with sharepoint to log exception into SQLdatabase.I use Windows 7 OS and Visual Studio 2010.

(1) As given in a link, I created 'Logging' database in SQLEXPRESS by running the script in the location (C:\Documents and Settings\Venkatesan\My Documents\EntLib50Src\Blocks\Logging\Src\DatabaseTraceListener\Scripts\CreateLoggingDb)

(2) I Opened the web.config file in enterprise library (EntLib Config .Net 4) and mentioned the connection string for a database instance (ExampleDatabase) with connection string "data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Logging.mdf;User Instance=true"

(3) I mentioned the exception policy(MyPolicy) ,exception type(All Exceptions) ,Database trace listener and so on.. and hence the web.config file is as follows: i ve provided only the required portions in web.config file
.. .. .. .. .. (4) I deployed the required dlls in GAC and in web application's bin as well... Previously, i had not deployed ent lib dlls in GAC,but i got an error mentioning i must deploy them in GAC.

(5) I Added the ent lib dlls as references in the solution project.

(6) My project code is as follows:

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Data.SqlClient;
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Sql;
using Microsoft.Practices.EnterpriseLibrary.Data.SqlCe;
using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling;
using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging;
using Microsoft.Practices.EnterpriseLibrary.Logging;
using Microsoft.Practices.EnterpriseLibrary.Logging.Database;
using Microsoft.Practices.ServiceLocation;
using Microsoft.Practices.ObjectBuilder2;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.Configuration;
using Microsoft.Practices.Unity.InterceptionExtension;
using Microsoft.Practices.Unity.InterceptionExtension.Configuration;
using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration; using Microsoft.Practices.EnterpriseLibrary.Logging.Configuration;

namespace MyEntLibProj.Layouts.MyEntLibProj
{
public partial class MyApplicationPage : LayoutsPageBase
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
throw new ArgumentNullException("This is an error!!!!");
}
catch (Exception ex)
{
Exception ex1;
bool result = ExceptionPolicy.HandleException(ex, "MyPolicy", out ex1);
if (result)
throw;
}
}
}
}

When i debug the code, although I am not getting any exception and 'result' value is true, the ArgumentNull Exception is not getting logged into my database.Please help me in finding out where I would have been wrong...

1

1 Answers

0
votes

My web.config file:

< configuration>
< configSections>
< section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings,

Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral,

PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
< section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral,

PublicKeyToken=31bf3856ad364e35" requirePermission="true" /> < section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" /> ..
< loggingConfiguration name="" tracingEnabled="true" defaultCategory="General" >
< listeners>
< add name="Database Trace Listener"
type="Microsoft.Practices.EnterpriseLibrary.Logging.Database.FormattedDatabaseTraceListener,Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" databaseInstanceName="ExampleDatabase" writeLogStoredProcName="WriteLog" addCategoryStoredProcName="AddCategory" formatter="Text Formatter" />
< formatters>
< add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="Timestamp: {timestamp}{newline} Message: {message}{newline} Category: {category}{newline} Priority: {priority}{newline} EventId: {eventid}{newline} Severity:{severity}{newline} Title:{title}{newline} Machine: {localMachine}{newline} App Domain: {localAppDomain}{newline} ProcessId: {localProcessId}{newline} Process Name: {localProcessName}{newline} Thread Name: {threadName}{newline} Win32 ThreadId:{win32ThreadId}{newline} Extended Properties: {dictionary({key} - {value}{newline})}" name="Text Formatter" /> < categorySources>
< add switchValue="All" name="General">
< listeners>
< add name="Database Trace Listener" />


< specialSources>
< allEvents switchValue="All" name="All Events" />
< notProcessed switchValue="All" name="Unprocessed Category" />
< errors switchValue="All" name="Logging Errors & Warnings" />


< exceptionHandling>
< exceptionPolicies>
< add name="MyPolicy">
< exceptionTypes>
< add name="All Exceptions" type="System.Exception, mscorlib, Version=4.0.0.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" postHandlingAction="NotifyRethrow"> < exceptionHandlers>
< add name="Logging Exception Handler" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" logCategory="General" eventId="100" severity="Error" title="Enterprise Library Exception Handling" formatterType="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatter, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35" priority="0" /> < /exceptionHandlers> < dataConfiguration defaultDatabase="ExampleDatabase" /> < connectionStrings>
< add name="ExampleDatabase" connectionString="datasource=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Logging.mdf;User Instance=true" providerName="System.Data.SqlClient" /> .. < SafeControls> < SafeControl Assembly="System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"Namespace="System.Web.UI.WebControls"TypeName="" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="False" /> ..
< SafeControl Assembly="Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.EnterpriseLibrary.Common" TypeName="
" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.Unity" TypeName="" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.Unity.Configuration, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.Unity.Configuration" TypeName="" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.Unity.Interception.Configuration, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.Unity.Interception.Configuration" TypeName="" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling" TypeName="" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.EnterpriseLibrary.Logging" TypeName="" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging" TypeName="" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.EnterpriseLibrary.Data" TypeName="" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.EnterpriseLibrary.Logging.Database" TypeName="" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.EnterpriseLibrary.Data.SqlCe, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="Microsoft.Practices.EnterpriseLibrary.Data.SqlCe" TypeName="" Safe="True" /> < SafeControl Assembly="Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"Namespace="Microsoft.Practices.ServiceLocation" TypeName="" Safe="True" /> .. ..