我现在一直在 ASP.NET MVC 3 工作,但是有些东西是默默无闻的,我无法意识到它是什么问题。该项目突然停止使用 IIS ,在调试模式下VS 2012不再打开浏览器窗口( Google Chrome v.25 beta,Mozilla Firefox 19.0 )。我已经访问了几个引用的链接,但解决方案没有包含。当我按下IIS本地Web服务器上的“创建虚拟目录”按钮时,它响应正常,但该站点永远不会在池中创建。任何帮助表示赞赏。
我已经尝试过这些建议但没有成功:
答案 0 :(得分:3)
找到解决方案。我希望这有助于其他 堆叠 。所有以前的文章都很有用,帮助我理解更好的IIS工程。
如果网站没有正确的路线,则会显示不良网页代码 403.14 。无法从未完成必要权限的目录中显示页面。当路由不正确时,它默认重定向到服务器保护的目录。
我之前列出的这篇文章是最完整的。在VS 2010/2012安装过程之后部署第一个项目时出现此错误。所以,不要担心,它会发生。
ASP.NET MVC 3: A default document is not configured
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true"></modules> <!--THIS ONE -->
<!--<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
--><!-- any other modules you want to run in MVC e.g. FormsAuthentication, Roles etc. --><!--
</modules>-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<!-- <modules runAllManagedModulesForAllRequests="true"></modules> -->
<modules> <!--THIS ONE -->
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
<!-- any other modules you want to run in MVC e.g. FormsAuthentication, Roles etc. -->
</modules>
</system.webServer>
我的贡献 如果有人是ReSharper Refactoring功能或任何其他重构工具的助手,请注意不加选择地使用它,因为它会意外地改变事物。不要误解我的话,这是一个迷人的VS插件,我在日常工作中使用它。但在我的情况下,它修改了Global.asax.cs文件的RegisterRoutes(...)中的路由参数,当然站点无法正确加载(甚至不是主页)。
以下是{ id }发生的事情:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL ORIGINAL VALUES
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
通过这个地狱{ referenceId }:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{referenceId}", // URL MODIFIED VALUES
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
答案 1 :(得分:1)
直到我意识到我已经在Appplication_OnStart上将该成员标记为静态时,我才对这个错误感到震惊。
这错误地发生在我没有压制的代码分析警告上,所以无头,因为我遵循了CA1822警告的最佳做法。
protected static void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
答案 2 :(得分:0)
此错误的另一种方法:如果将其放在global.asax中:
protected void Application_OnStart()
{
}
你会收到403.1错误。
答案 3 :(得分:0)
如果有人仍在查看MVC和Web部署中的任何403错误,并且之前的答案都没有帮助(就像我一样),我还会发现另外一件事。
的DLL
解释:虽然很多论坛我发现403的一个可能原因是dll相关。我最终检查了那个区域,并注意到我错过了很多dll。我复制了所有的dll,网站开始正常工作。我相信这些dll不见了,因为他们没有设置复制本地,所以他们没有在网站上发布(虽然我还没有证实这一点)(也没有缩小&#39;哪些&#39;缺少的dll是问题),但认为发布可能会有所帮助。