実稼働環境のみで、ユーザーがログイン画面にアクセスすると、次の elmah エラーが表示されます
System.NullReferenceException: Object reference not set to an instance of an object.
Generated: Wed, 24 Apr 2013 16:50:35 GMT
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext)
at System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context)
at System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
残念ながら、私にヒントを与えるためにそこには多くのことが起こっていません!
私の推測では、ルートが使用されようとしているときに、ルートがまだロードされていない負荷がかかった状態でのある種のレース状態であると思います...しかし、それは単なる推測です.
誰もこのエラーを見たことがありますか?
GlobalAsax Begine Request メソッドでルートをロードしています。
protected void Application_BeginRequest()
{
if(RouteTable.Routes.Count == 0) {
XmlConfigurator.Configure();
ILog log = LogManager.GetLogger("MainLog");
log.Info("Logger started");
//AreaRegistration.RegisterAllAreas();
//log.Info("RegisterAllAreas done");
RegisterRoutes(RouteTable.Routes);
log.Info("RegisterRoutes done");
try
{
BootstrapStuctureMap.Bootstrap();
log.Info("Done Bootstrapping");
BootStrapAutoMapper.Configure();
log.Info("Done Automapping");
}
catch (Exception ex)
{
log.Error("Error in Application_Start: ex = " + ex);
throw;
}
ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
log.Info("Done Building StructureMapControllerFactory");
ModelBinders.Binders.DefaultBinder = new CustomModelBinder();
ModelMetadataProviders.Current = new AnnotationsAndConventionsBasedModelMetaDataProvider();
}
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("elmah.axd");
// you have to add this IgnoreRoute so that the PDFX pages get handled like a regular *.aspx page, not a MVC page. - EWB
routes.IgnoreRoute("{resource}.pdfx");
routes.IgnoreRoute("{*favicon}", new {favicon = @"(.*/)?favicon.ico(/.*)?"});
routes.MapRoute("StudentLookup_Return",
"StudentLookup/StudentLookup/{nextAction}/{nextController}",
new
{
controller = "StudentLookup",
action = "StudentLookup"
}
);
routes.MapRoute("StudentLookup_Id",
"StudentLookup/StudentLookup/{Id}",
new
{
controller = "StudentLookup",
action = "StudentLookup",
Id = UrlParameter.Optional
}
);
routes.MapRoute("Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
} // Parameter defaults
);
}
いくつかの新しいサーバーがオンラインで購入された後に表示されたと信じているため、それらのサーバーの構成方法に関係している可能性があります.
私は、誰かがこれを前に見て、それを理解したということで、ここでヘイル・メアリーを投げているようなものです!
どんな助けでも大歓迎です。