在 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安装记录
在打开 UAC 的服务器(Windows 2008 R2)上重新启动 Windows 服务(来自 ASP.NET 应用程序)