在 windows 服务器上安装 asp.net mvc 应用程序

Posted

技术标签:

【中文标题】在 windows 服务器上安装 asp.net mvc 应用程序【英文标题】:Install asp.net mvc application on windows server 【发布时间】:2016-05-29 06:15:59 【问题描述】:

我有以下问题:

有windows server 2008 r2

它已安装 iis 7.5

我将我的应用程序移到那里(它是 asp.net mvc 5 应用程序),在服务器上安装了 .net 4.5 框架

在 cmd 中运行以下命令

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

也试过了 %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

但它仍然抛出异常: 403 - 禁止访问:访问被拒绝。 您无权使用您提供的凭据查看此目录或页面。

我启用了目录浏览,它唯一能做的就是浏览文件夹。但它是 Web 应用程序,而不是要浏览的文件目录。

那么谁能告诉我我错过了什么?

IIS 配置:

更新 1 IUSR 和 IIS_IUSRS 都拥有完全控制权 我还尝试添加对我的应用程序所在文件夹具有完全控制权的所有人,但仍然相同

【问题讨论】:

【参考方案1】:

转到您的应用程序的已发布文件夹并授予 iis 用户对该文件夹的编辑更新访问权限,然后它将起作用, 右键单击文件夹 单击属性,然后单击安全性,然后完全控制 iis 用户。

【讨论】:

它已经有了我只是没有提到它。它具有完全控制权,但仍然无法正常工作【参考方案2】:

“403 - 禁止访问:访问被拒绝”表示 IIS 无权访问您的应用程序文件夹中的资源。这通常是 IIS 用来访问资源的用户的问题。

作为一项测试:授予“每个人”对您的应用程序所在目录的全部权限。如果可行,请删除“everyone”并授予用户 IIS_IUSRS 读取目录上资源的权限(也许该用户需要在 App_Data 文件夹中写入的权限)。

【讨论】:

IUSR 和 IIS_IUSRS 都有完全控制权 IUSR 没关系。 IIS_IUSRS 应该可以正常工作,但取决于 ApplicationPool 使用的用户。我通常将 ApplicationPool 设置为用户 NetworkService 并授予此用户对应用程序文件夹的访问权限。【参考方案3】:

确保 MVC Dll 包含在项目的构建输出中。

还可以尝试将此代码添加到 web.config 的 system.webserver 部分

<modules runAllManagedModulesForAllRequests="true">

https://www.iis.net/configreference/system.webserver/modules

<modules runAllManagedModulesForAllRequests="true" /> Meaning

【讨论】:

【参考方案4】:

如果您尝试通过启动 http://yourdomain.com/ 来测试您的网站,那么它将显示所有文件,就像您正在“浏览目录”一样,您必须添加一个 默认文档 - 这是您的Web 应用程序设置上的主页或登录页面。 在 IIS 管理器 上,单击您的站点,在右侧窗格中的 IIS 下,单击 Default Document 并设置您要首先显示的页面。

【讨论】:

以上是关于在 windows 服务器上安装 asp.net mvc 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

asp.net网站部署在云服务器windows server 2008上

如何在 Windows 服务中托管一个简单的 ASP.NET Web 界面

在windows上安装ASP.NET Core 的 Docker 映像

《ASP.NET5》Windows 7下Visual Studio 2015安装记录

mac系统怎么运行ASP文件

在打开 UAC 的服务器(Windows 2008 R2)上重新启动 Windows 服务(来自 ASP.NET 应用程序)