gpt4 book ai didi

asp.net-mvc - 部署 ASP.NET MVC 4 应用程序

转载 作者:行者123 更新时间:2023-12-05 03:13:13 24 4
gpt4 key购买 nike

在 Visual Studio 中,我的项目可以毫无问题地构建和运行。部署到 Windows Server 2012 R2 时遇到以下错误:

A default document is not configured for the requested URL, and directory browsing is not enabled on the server.

我已经安装了所有 4.5 和其他角色和配置文件,已向所有人授予该文件夹的权限,并且已阅读每篇文章并尝试实现每条建议但无济于事..

我别无选择,为此花了数周时间,无法理解部署站点为何如此复杂。有人可以提供建议吗?谢谢

编辑 - 这是针对 Windows Server 2012 的,我已经尝试了建议的替代方案,例如将 runAllManagedModulesForAllRequests 添加到我的 web.config。

编辑 部署时,我在 Release模式下构建解决方案,并将 bin、views、content 和 scripts 文件夹复制到 Windows Server。然后在 IIS 中,我将该文件夹设为应用程序,确保分配了 4.0 应用程序池并仍然收到错误。

最终编辑发布让我可以看到需要复制的结构。还有 3 个 dll 需要从 Visual Studio 复制到本地:

  • System.Web.Http.dll
  • System.Web.Http.WebHost.dll
  • System.Net.Http.Formatting.dll

以及更新的 Web.Config dependentAssembly 以考虑一些 MVC4 dll,例如指向 MVC3 二进制文件的 Unity.Mvc4。

最佳答案

此错误消息提供了有关问题的线索。 MVC 站点不像 WebForms 那样依赖文档或网页,这是 IIS 的默认模式。它们依赖于处理用于将请求传递给您的应用程序的 RESTful url 的特殊处理程序。

在您的 web.config 文件中,检查以下配置是否存在于 system.webServer 部分:

<system.webServer>
<handlers>
<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>

然后在您的 Web 服务器上,打开 IIS 管理器,在 LHS 的“连接”面板中导航到代表您的应用程序的节点,然后双击“功能 View ”选项卡中的“处理程序映射”图标。检查 ExtensionlessUrlHandler-Integrated-4.0 处理程序是否已启用(见下文)。

ExtensionlessUrlHandler

如果这不起作用,请仔细检查您是否在服务器上启用了 ASP.NET 4.5 角色。参见 http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-using-aspnet-35-and-aspnet-45#TOC301258515获取说明。

还要确保您的应用程序在为 .NET 4.0 配置的 AppPool 下运行。

关于asp.net-mvc - 部署 ASP.NET MVC 4 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com