我已经阅读了
this的问题,并尝试了在那里提到的解决方案,但是我收到这个异常,只有当我将应用程序发布到远程服务器的IIS.在本地计算机的IIS中,应用程序正常工作.我不知道在该服务器上导致此异常的原因:
Server Error in '/' Application. A route named 'HelpPage_Default' is already in the route collection. Route names must be unique. Parameter name: name 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.ArgumentException: A route named 'HelpPage_Default' is already in the route collection. Route names must be unique. Parameter name: name 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: [ArgumentException: A route named 'HelpPage_Default' is already in the route collection. Route names must be unique. Parameter name: name] System.Web.Routing.RouteCollection.Add(String name,RouteBase item) +3713577 System.Web.Mvc.RouteCollectionExtensions.MapRoute(RouteCollection routes,String name,String url,Object defaults,Object constraints,String[] namespaces) +350 System.Web.Mvc.AreaRegistrationContext.MapRoute(String name,String[] namespaces) +95 XbimServer.Areas.HelpPage.HelpPageAreaRegistration.RegisterArea(AreaRegistrationContext context) +174 System.Web.Mvc.AreaRegistration.RegisterAllAreas(RouteCollection routes,IBuildManager buildManager,Object state) +323 BimServer.WebApiApplication.Application_Start() +23 [HttpException (0x80004005): A route named 'HelpPage_Default' is already in the route collection. Route names must be unique. Parameter name: name] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context,HttpApplication app) +12600317 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo[] handlers) +175 System.Web.HttpApplication.InitSpecial(HttpApplicationState state,MethodInfo[] handlers,IntPtr appContext,HttpContext context) +304 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext context) +404 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475 [HttpException (0x80004005): A route named 'HelpPage_Default' is already in the route collection. Route names must be unique. Parameter name: name] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12617364 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context) +12456981 Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34212
这是我在Global.asax.cs中设置的:
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }
我的RouteConfig.cs:
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlParameter.Optional } ); }
和我的WebApiConfig.cs:
config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional } );
我也对我的web.config文件进行了以下更改:
<system.webServer> <modules> <remove name="WebDAVModule" /> </modules> <handlers> <remove name="WebDAV" /> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <remove name="OPTIONSVerbHandler" /> <remove name="TRACEVerbHandler" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> </system.webServer>