I have been working on a C# console application which uses a number of 3rd party dlls which are referenced in the project.
Everything was working fine but one day my windows 7 operating system updated because of automatic windows update and after that this application code started crashing at the code where a call is made to a 3rd party dll which actually accessing the database.
I restored my system to a previous state and the application started working fine again but once again the windows update ran and application started crashing again at the same location.
I can not stop windows update as its a company provided laptop and I can not change setting so that windows update do not happen again. And I do not have the code for this 3rd party dll.
I can provide you the app.config here...
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<section name="databaseSection" type="Cognizant.CAFE.FoundationServices.Data.Configuration.DatabaseSection,Cognizant.CAFE.FoundationServices.Data"/>
<section name="cafe.frameworks.foundationAbstraction" type="Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.Configuration.FoundationAbstractionSectionHandler, Cognizant.CAFE.Frameworks.FoundationAbstraction.AdapterFactory"/>
<section name="loggingConfiguration" type="Cognizant.CAFE.FoundationServices.Logging.Configuration.LoggingConfigurationSection, Cognizant.CAFE.FoundationServices.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<section name="exceptionManagement" type="Cognizant.CAFE.FoundationServices.ExceptionManagement.Configuration.ExceptionManagementSection, Cognizant.CAFE.FoundationServices.ExceptionManagement, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</configSections>
<!--<databaseSection performanceCountersEnabled="false" />
<exceptionManagement performanceCountersEnabled="false" />-->
<databaseSection defaultDatabase="Sql" dbCommandTimeOut="3000">
<databases>
<add name="Sql" type="Cognizant.CAFE.FoundationServices.Data.SqlHelper,Cognizant.CAFE.FoundationServices.Data" connectionStringName="Sql"/>
</databases>
</databaseSection>
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="C:\ApplicationLogs\BGTs\AA\v1.0\AABackgroundTask\Files\Log\AABLog.txt"/>
<appendToFile value="true"/>
<maximumFileSize value="1500KB"/>
<maxSizeRollBackups value="20"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingFile"/>
</root>
</log4net>
<connectionStrings>
-----deleted
</connectionStrings>
<appSettings>
<!--Production-->
<!-- PROCESS DELAY SECTION -->
<add key="ProcessDelay" value="0"/>
<!-- INBOUND -->
<add key="IB_GlobalVarCreation" value="GlobalVarCreation"/>
<add key="IB_RoutingScript_In" value="RoutingScript_In"/>
<!-- OUTBOUND -->
<add key="OB_CampaignCreation" value="CampaignCreation"/>
<add key="OB_RoutingScript_Out" value="RoutingScript_Out"/>
<add key="OB_AdminScript_Agent" value="AdminScript_Agent"/>
<add key="OB_DisableCampaign" value=" DisableCampaign"/>
<!-- INBOUND & OUTBOUND -->
<add key="IB_OB_EnterpriseSkillGroup" value="EnterpriseSkillGroup"/>
<add key="IB_OB_SkillGroupCreation" value="SkillGroupCreation"/>
<add key="IB_OB_EnterpriseSkillGroupMap" value="EnterpriseSkillGroupMap"/>
<add key="IB_OB_CallType" value="CallType"/>
<add key="IB_OB_DialNumberMapping" value="DialNumberMapping"/>
<!--NORAML OPERATIONS-->
<add key="OPS_UserCreation" value="UserCreation"/>
<add key="OPS_AgentSupervisor" value="AgentSupervisor"/>
<add key="OPS_Rehire" value="Rehire"/>
<add key="OPS_AgentTeamCreation" value="AgentTeamCreation"/>
<add key="OPS_AgentSkillGroup" value="AgentSkillGroup"/>
<add key="OPS_AgentTeam" value="AgentTeam"/>
<add key="OPS_SupervisorTeam" value="SupervisorTeam"/>
<add key="OPS_AgentTeamUpdate" value="AgentTeamUpdate"/>
<!--Active Directory INFORMATION -->
<add key="adURL" value="IQOR.QOR.COM"/>
<add key="adUser" value="IQOR\ERP.IQ.QATCH"/>
<add key="adPassword" value="+loS96bB8jNKv1JWXVLb0w=="/>
<!--Others-->
<add key="OTH_TeamUpdateEnable" value="true"/>
<add key="OTH_ProgarmPoolIndEnable" value="false"/>
</appSettings>
<cafe.frameworks.foundationAbstraction>
<authorization>
<adapters>
<add name="CafeProvider" type="Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.CAFE.AuthorizationAdapter, Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.CAFE, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" default="True"/>
<add name="EnterpriseLibraryProvider" type="Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.EnterpriseLibrary.AuthorizationAdapter, Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.EnterpriseLibrary, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</adapters>
</authorization>
<caching>
<adapters>
<add name="EnterpriseLibraryProvider" type="Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.EnterpriseLibrary.CacheAdapter, Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.EnterpriseLibrary, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" default="True"/>
</adapters>
</caching>
<dataAccess>
<adapters>
<add name="CafeProvider" type="Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.CAFE.DataAccessAdapter, Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.CAFE, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" default="True"/>
</adapters>
</dataAccess>
<exceptionManagement>
<adapters>
<add name="CafeProvider" type="Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.CAFE.ExceptionManagerAdapter, Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.CAFE, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" default="True"/>
<add name="EnterpriseLibraryProvider" type="Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.EnterpriseLibrary.ExceptionManagerAdapter, Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.EnterpriseLibrary, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</adapters>
</exceptionManagement>
<logging>
<adapters>
<add name="CafeProvider" type="Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.CAFE.LoggingAdapter, Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.CAFE, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" default="True"/>
<add name="EnterpriseLibraryProvider" type="Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.EnterpriseLibrary.LoggingAdapter, Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.EnterpriseLibrary, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</adapters>
</logging>
</cafe.frameworks.foundationAbstraction>
<loggingConfiguration>
<commonSettings loggingEnabled="true" logToTrace="true" useAdditionalParameters="true">
<loggingMode asynchronous="False"/>
<filters>
<allowedLogLevels>
<add name="Error"/>
<add name="Fatal"/>
<add name="Information"/>
<add name="Trace"/>
<add name="Warning"/>
</allowedLogLevels>
<allowedLogCategories>
<add name="Category"/>
</allowedLogCategories>
</filters>
<publishers>
<add name="DBLog" type="Cognizant.CAFE.FoundationServices.Logging.DBPublisher, Cognizant.CAFE.FoundationServices.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add name="EventLog" type="Cognizant.CAFE.FoundationServices.Logging.EventLogPublisher, Cognizant.CAFE.FoundationServices.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add name="MSMQLog" type="Cognizant.CAFE.FoundationServices.Logging.MSMQPublisher, Cognizant.CAFE.FoundationServices.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add name="TextLog" type="Cognizant.CAFE.FoundationServices.Logging.TextFilePublisher, Cognizant.CAFE.FoundationServices.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add name="XMLLog" type="Cognizant.CAFE.FoundationServices.Logging.XMLFilePublisher, Cognizant.CAFE.FoundationServices.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</publishers>
<formatters defaultFormatter="Text">
<add name="Text" type="Cognizant.CAFE.FoundationServices.Logging.TextFormatter, Cognizant.CAFE.FoundationServices.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add name="Xml" type="Cognizant.CAFE.FoundationServices.Logging.XMLFormatter, Cognizant.CAFE.FoundationServices.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</formatters>
</commonSettings>
<logSettings defaultCategory="Category">
<categories>
<add categoryName="Category">
<categorySettings>
<add levelName="Error">
<sinks>
<add publisherName="TextLog" formatterName="Text" fileName="AABLog.txt" maxFileSize="1MB"/>
</sinks>
</add>
</categorySettings>
</add>
</categories>
</logSettings>
</loggingConfiguration>
<exceptionManagement>
<policies defaultPolicy="UI Policy">
<add name="UI Policy" type="">
<exceptions>
<add name="Exception" type="System.Exception, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" postHandlingAction="None">
<handlers>
<add name="Log Handler" type="Cognizant.CAFE.FoundationServices.ExceptionManagement.LogHandler, Cognizant.CAFE.FoundationServices.ExceptionManagement, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</handlers>
</add>
</exceptions>
</add>
</policies>
<messageSources defaultSource="Xml">
<add name="Xml" type="Cognizant.CAFE.FoundationServices.ExceptionManagement.XmlMessageSource, Cognizant.CAFE.FoundationServices.ExceptionManagement, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" source="D:\Cognizant\CAFE.NET 2.0\Foundation Services\QuickStart\Web\ExceptionMessages.xml"/>
</messageSources>
</exceptionManagement>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri=""/>
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400"/>
</providers>
</roleManager>
</system.web>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
The code where my application is crashing or giving exception is below:
public DataSet GetData(string statementId, string parameter)
{
object[] param = null;
DataSet ds = null;
try
{
if (parameter != null)
{
param = new object[1];
param[0] = parameter;
ds = DataAccessFaçadeAdapter.ExecuteStatementForDataSet(statementId, param);
}
else
{
ds = ExecuteStoredProcedure(statementId);
}
}
catch (Exception ex)
{
Tracer.Trace(TraceLevel.Error, "GetData() Exception is" + ex.Message);
}
return ds;
}
here the following line is where I get exception as this method is written in 3rd party dll for which I do not have any code
ds = DataAccessFaçadeAdapter.ExecuteStatementForDataSet(statementId, param);
And the Exceptions details are as below:
- InnerException {"Object reference not set to an instance of an object."} System.Exception {System.NullReferenceException}
Message "Object reference not set to an instance of an object." string
Stack Trace as below:
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at Cognizant.CAFE.Frameworks.FoundationAbstraction.AdapterFactory.GetAdapter[T]()
at IQOR.QATCH.IntegrationServices.DataAccessFaçadeAdapter.ExecuteStatementForDataSet(String StatementID, Object[] parameters)
at IQOR.AA.BackgroundTask.Exporter.GetData(String statementId, String parameter) in C:\\AutomationAnywhere_OLD_CODE\\AutomationAnywhere_OLD\\IQOR.AA.BackgroundTask - Copy\\IQOR.AA.BackgroundTask\\Exporter.cs:line 433
Stack Trace of 3rd Party dll is as below:
at Cognizant.CAFE.FoundationServices.Data.AdoHelperFactory.GetConnectionString(String providerName)
at Cognizant.CAFE.FoundationServices.Data.AdoHelperFactory.CreateHelper(String providerName)
at Cognizant.CAFE.FoundationServices.Data.AdoHelperFactory.CreateHelper()
at Cognizant.CAFE.Frameworks.FoundationAbstraction.Adapters.CAFE.DataAccessAdapter..ctor()
Please advise on how to resolve.
Determine if the third party DLL has an update. Usually system updates target discovered security holes and this targeted dll may have some issue related.
Otherwise you may want to implement a different method of data access or even move the application to .Net 4 which may have the latest methodology.