【发布时间】:2016-05-27 11:03:39
【问题描述】:
在使用 ASP.NET、C# 和 MVC 模式开发我的网站后,我现在可以将我的网站部署到“真实”服务器(不再是 Visual Studio 的 IIS Express)。
所以,我尝试使用 Web 部署,配置了所有内容,并且似乎已经正确完成,因为我现在可以从服务器端看到我的所有文件。
但遗憾的是,当我尝试访问该网站时,我遇到了错误 403(来自客户端和服务器),服务器为我提供了更多信息:
“错误 403.14 - 禁止 - 服务器未配置为显示 该目录的文件”
如果我尝试像使用 Visual Studio 一样使用 url(例如 url/Views/Home/),它会返回:
Error 500.19
28: <system.webServer>
29: <handlers>
30: <remove name="BlockViewHandler"/>
这是相关的 web.config 文件:(有点)
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
我看不出问题出在哪里,因为该网站在 Visual Studio 中运行良好。
部署是在发布模式下完成的。
编辑:我启用了目录浏览,当我进入“视图”文件夹时,它返回相同的错误 500
【问题讨论】:
-
在发布时检查您选择的发布模式而不是调试模式作为部署模式
-
“服务器未配置为显示此目录的文件”表示 IIS 找不到默认文档(例如
index.html或Default.aspx)。如果您使用的是 ASP.NET 的 URL 路由(如果您使用的是 ASP.NET MVC,则可能是这样),那么您需要确保您的应用程序的根目录在 IIS 管理器中定义为应用程序范围(如果您没有访问权限到 IIS 管理器,请联系您的虚拟主机)。一个网站可以定义多个应用程序范围,以允许多个应用程序(具有自己的bin文件夹和顶级web.config文件)并排共存。 -
我尝试将 'Index.cshtml' 添加为默认文档(即使它看起来很傻),但它仍然返回错误 500
标签: c# asp.net asp.net-mvc asp.net-mvc-4 iis