In the project i am using i am having the following code and when i upload it to the server.Its givig me the following error in the global.cs file.
Server Error in '/' Application.
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
Stack Trace:
[NullReferenceException: Object reference not set to an instance of an object.]
anmar.SharpWebMail.UI.Global.getEffectiveCulture(CultureInfo ci) in global.cs:95
anmar.SharpWebMail.UI.Global.ParseCultures(Object[] cultures) in global.cs:180
anmar.SharpWebMail.UI.Global.ParseCultures(Object[] cultures) in global.cs:177
anmar.SharpWebMail.UI.Global.Application_AcquireRequestState() in global.cs:50
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +296
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Web.Util.ArglessEventHandlerProxy.Callback(Object sender, EventArgs e) +41
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64
|
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210
The code in global.cs file is
using System;
[assembly: log4net.Config.XmlConfigurator()]
namespace anmar.SharpWebMail.UI
{
public class Global : System.Web.HttpApplication {
protected static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);protected static System.Globalization.CultureInfo invariant = null;
protected static System.Collections.Specialized.HybridDictionary availablecultures;protected static System.Resources.ResourceManager resources = null;public void Application_Start ( System.Object sender, System.EventArgs args ) {
initConfig();
}
public void Application_Error ( System.Object sender, System.EventArgs args ) {
if ( log.IsErrorEnabled ) log.Error ( "Application_Error", Server.GetLastError() );#if !DEBUG
Server.ClearError();
#endif
}
public virtual void Application_AcquireRequestState() {
// For each request initialize the culture values with the
// user language as specified by the browser.System.String[] lang = new System.String[]{Request.QueryString["lang"], null};
lang[1] = if ( this.Context.Session!=null && this.Session["effectiveculture"]!=null )this.Session["effectiveculture"].ToString();
System.Globalization.
CultureInfo culture = this.ParseCultures ( lang, Request.UserLanguages );if ( culture==null )
culture = invariant;
if ( culture!=null && lang[1]!=culture.Name ) {
System.Threading.if ( !culture.IsNeutralCulture )Thread.CurrentThread.CurrentCulture = culture;
System.Threading.
Thread.CurrentThread.CurrentUICulture = culture;if ( this.Context.Session!=null ) {
Session[
Session["resources"] = resources.GetResourceSet(culture, true, true);"effectiveculture"] = getEffectiveCulture(culture);
}
}
}
public void Session_Start ( System.Object sender, System.EventArgs args ) {
// Inbox Objectanmar.SharpWebMail.CTNInbox inbox = new anmar.SharpWebMail.CTNInbox();
inbox.SortExpression = Application[if ( Application["sharpwebmail/read/inbox/sort"]!=null )"sharpwebmail/read/inbox/sort"].ToString();
Session[
Session["inbox"] = inbox;"sharpwebmail/read/message/temppath"] = parseTempFolder(Application["sharpwebmail/read/message/temppath"], Session.SessionID);Session["sharpwebmail/send/message/temppath"] = parseTempFolder(Application["sharpwebmail/send/message/temppath"], Session.SessionID);
}
public void Session_End ( System.Object sender, System.EventArgs args ) {
// Clean up temp filescleanTempFolder(Session["sharpwebmail/read/message/temppath"]);cleanTempFolder(Session["sharpwebmail/send/message/temppath"]);
}
private void cleanTempFolder ( System.Object value ) {try {
System.IO.if ( value!=null ) {DirectoryInfo dir = new System.IO.DirectoryInfo (value.ToString());
dir.Delete(if ( dir.Exists )true);dir=null;
}
}
catch( System.Exception e ) {if ( log.IsErrorEnabled )log.Error("Error cleanling up dir", e);
}
}
public System.String getEffectiveCulture ( System.Globalization.CultureInfo ci ) {
System.
String culture = System.String.Empty;if ( !availablecultures.Contains(ci.Name) && !ci.Equals(System.Globalization.CultureInfo.InvariantCulture) ) culture = this.getEffectiveCulture(ci.Parent);
else
culture = ci.Name;
return culture;
}
private void initConfig () {
Application[
Application["product"] = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;"version"] = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
resources =
Application[new System.Resources.ResourceManager("SharpWebMail", System.Reflection.Assembly.GetExecutingAssembly());"resources"] = resources;
System.Collections.
Hashtable config = (System.Collections.Hashtable)System.Configuration.ConfigurationSettings.GetConfig("sharpwebmail");foreach ( System.Collections.DictionaryEntry item in config ) {
Application.Add(item.Key.ToString(), item.Value);
}
config = null;
Application[if ( Application["sharpwebmail/send/addressbook"]!=null ) {"sharpwebmail/general/addressbooks"] = true;
}
if ( (bool)Application["sharpwebmail/read/message/useserverencoding"] ) {anmar.SharpMimeTools.SharpMimeHeader.EncodingDefault = System.Text.Encoding.Default;
}
TestAvailableCultures();
System.Collections.SortedList availablecultures_values = new System.Collections.SortedList(availablecultures.Count);foreach ( System.Collections.DictionaryEntry item in availablecultures ) {
availablecultures_values.Add(item.Value, item.Key);
}
Application["AvailableCultures"] = availablecultures_values;
initInvariantCulture();
Application["sharpwebmail/read/message/temppath"] = parseTempFolder(Server.MapPath("/"), Application["sharpwebmail/read/message/temppath"]);Application["sharpwebmail/send/message/temppath"] = parseTempFolder(Server.MapPath("/"), Application["sharpwebmail/send/message/temppath"]);
}
private void initInvariantCulture() {if ( invariant==null )
ParseInvariant(Application[
"sharpwebmail/general/default_lang"].ToString());if ( invariant==null )
ParseInvariant(
"en");if ( invariant==null ) { invariant = System.Globalization.CultureInfo.InvariantCulture;
// Set the first available culture as the default oneif ( availablecultures.Count>0 ) {
System.Collections.
IDictionaryEnumerator enumerator = availablecultures.GetEnumerator();if ( enumerator.MoveNext() )
invariant = ParseCultureSpecific((
enumerator = string)enumerator.Key);null;
}
}
}
private System.Globalization.CultureInfo ParseCulture ( System.String culturename ) {
System.Globalization.
CultureInfo culture = null;try {
culture =
} new System.Globalization.CultureInfo(culturename);catch ( System.Exception e ) {
log.Error(if ( log.IsErrorEnabled )"Error parsing culture", e);
}
return culture;
}
private System.Globalization.CultureInfo ParseCultureSpecific ( System.String culturename ) {
culturename = culturename.Remove(culturename.IndexOf(if ( culturename.IndexOf(';')>0 )';'), culturename.Length - culturename.IndexOf(';'));
System.Globalization.
CultureInfo culture = null;try {
culture = System.Globalization.
CultureInfo.CreateSpecificCulture(culturename);if ( culturename.Length>0 && culture.Equals(System.Globalization.CultureInfo.InvariantCulture) )
culture = ParseCulture(culturename);
} catch ( System.Exception e ) {
log.Error(if ( log.IsErrorEnabled )"Error parsing specific culture", e);
}
return culture;
}
private System.Globalization.CultureInfo ParseCultures ( params System.Object[] cultures ) {
System.Globalization.
CultureInfo culture = null;if ( cultures!=null ) {
foreach ( System.Object item in cultures ) {if ( item==null )
continue;if ( item is System.Array )
culture = ParseCultures(item
as System.Object[]);else if ( item is System.String )
culture =
this.ParseCultureSpecific(item.ToString());if ( culture!=null && getEffectiveCulture(culture).Length>0 ) break;
elseculture = null;
}
}
return culture;
}
private void ParseInvariant ( System.String culture ) {
invariant = ParseCulture(culture);
if ( invariant!=null ) {
culture = getEffectiveCulture(invariant);
if ( culture.Length>0 )
invariant = ParseCultureSpecific(culture);
elseinvariant = null;
}
}
private System.String parseTempFolder( System.Object prefix, System.Object sufix ) {
// Temp folderif ( prefix!=null && sufix!=null && !prefix.Equals(System.String.Empty) && !sufix.Equals(System.String.Empty) ) return System.IO.Path.Combine (prefix.ToString(), sufix.ToString());
elsereturn null;
}
private void TestAvailableCultures() {
availablecultures =
new System.Collections.Specialized.HybridDictionary();foreach ( System.Globalization.CultureInfo item in System.Globalization.CultureInfo.GetCultures( System.Globalization.CultureTypes.AllCultures) ) {if ( !item.Equals(System.Globalization.CultureInfo.InvariantCulture) && !availablecultures.Contains(item.Name) && resources.GetResourceSet(item, true, false)!=null )
availablecultures.Add(item.Name, item.EnglishName);
}
}
}
}
What is the reason for this error? How to solve it? I am using VS2005 ASP.net 2.0