首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NullReferenceException on RouteTable.Routes

NullReferenceException on RouteTable.Routes
EN

Stack Overflow用户
提问于 2011-06-28 04:48:37
回答 2查看 1.7K关注 0票数 0

我的ASP.NET MVC 3 web项目运行良好,然后我重新编译了它,现在我得到了这个错误(为了保护无辜的人,修改了一些路径和名称空间):

对象引用未设置为对象的实例。描述:在执行当前web请求时发生了未处理的异常。请查看堆栈跟踪以获得有关错误的更多信息,以及它起源于代码的位置。

异常详细信息: System.NullReferenceException:对象引用未设置为对象的实例。

源错误:

第66行:

RouteTable.Routes.MapRoute(第67行:

"DefaultRoutes",//路线名称为68号线:

带有参数的“{模块}/{控制器}/{action}/{id}”,// URL

源文件:....\Global.asax.cs

行: 66

堆栈跟踪:

NullReferenceException:对象引用没有设置为对象的实例。

Project.MvcApplication.RegisterRoutes(RouteCollection路由)在D:.....\Global.asax.cs:66 Project.MvcApplication.Application_Start()在D:.....\Global.asax.cs:139

HttpException (0x80004005):对象引用没有设置为对象的实例。

System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext上下文,HttpApplication应用程序) +4051717 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext上下文,MethodInfo[]处理程序)

System.Web.HttpApplication.InitSpecial(HttpApplicationState状态,MethodInfo[]处理程序,IntPtr appContext,HttpContext上下文) +352 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext上下文) +407 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +375

HttpException (0x80004005):对象引用没有设置为对象的实例。

( System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文) +11642112

( System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文) +141

System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext上下文) +4865877

我在Windows7 x64上使用IIS7.5,应用程序池被配置为使用.NET 4和“集成”托管管道运行。

我尝试过重新启动,也清理了bin和obj文件夹,但没有成功。

一些额外的信息被证明是重要的--上面错误页面中缺少的行:

代码语言:javascript
复制
RouteTable.Routes.MapRoute(
    "DefaultRoutes", // Route name
    "{module}/{controller}/{action}/{id}", // URL with parameters
    new { module = _loadedModules.FirstOrDefault().Name, controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-28 05:16:42

这个项目动态加载模块,而原始ASP.NET错误页面中不清楚的是,NullReferenceException是由MapRoute()方法调用的最后一行引起的。

原来_loadedModules是空的,所以FirstOrDefault()返回null --因此出现了异常。

票数 0
EN

Stack Overflow用户

发布于 2011-06-28 05:01:55

在您的global.asax.cs中,您可以这样编写

代码语言:javascript
复制
public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapRoute(....);//you should use routes parameter rather than RouteTable.Routes   
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6501682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档