sav*_*dis 146 iis asp.net-mvc hosting
我正在开发一个ASP MVC Web项目.现在我有一个要求迫使我部署到IIS7开发中(检查一些功能).每当我尝试键入网站的URL时,我都会收到上述错误消息.(注:开发机器:Vista Home Premium,IIS7)
我到目前为止做了什么:
编辑了HOSTS文件(C:\ WINDOWS\system32\drivers\etc\hosts).
将两个域放入其中(127.0.0.1 domain1.com和127.0.0.1 domain2.com).
创建了一个文件夹c:\ websites\dirOfApplication,并从Visual Studio 8中部署到此文件夹.
在IIS7中创建了一个主机名为domain1.com的新站点和上面的应用程序文件夹.
在Web浏览器中键入地址domain1.com会导致上述错误(HTTP错误403.14 - 禁止 - Web服务器配置为不列出此目录的内容.)
我想我错过了什么,但不知道是什么!尝试以相同的结果部署文件System.Web.Mvc,System.Web.Abstraction和System.Web.Routing.每当我尝试按F5并运行应用程序时,它运行正常!
Cyr*_*rom 225
也许它对某人有用:在用.NET Framework 4.5将我的应用程序转换为MVC 4并在我的服务器上使用IIS 7.0安装框架后,我遇到了问题中提到的相同"禁止"错误.当我注意到时,我尝试了上述所有选项都无济于事
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我的web.config中缺少.添加后,一切正常.简单,但容易被忽视......
编辑:
当然上面的解决方案可行,但确实是浪费资源.我认为最好在评论中添加Chris Herring指出的路由模块.
<system.webServer>
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
Bre*_*ski 125
在这里回答SO ,问题:403 - 禁止在iis7.5上进行基本的MVC 3部署
跑aspnet_regiis -i
.我经常发现你需要这样做才能让4.0应用程序运行起来.打开命令提示符Administrator
(右键单击命令提示符图标,然后选择以管理员身份运行):
cd \
cd Windows\Microsoft.NET\Framework\v4.xxx.xxx
aspnet_regiis -i
Run Code Online (Sandbox Code Playgroud)
安装并注册后,请确保您的应用程序正在使用设置为.NET 4.0的应用程序池.
更新:我刚刚发现此命令有问题.使用-i将所有应用程序池更新到ASP.NET 4.0.
使用aspnet_regiis -ir
安装ASP.NET版本但不会将任何Web应用程序更改为此版本.您可能还想查看-iru选项.
sav*_*dis 11
这是因为对你(我)的所作所为太过确定了!
在我的机器上安装了IIS 7但是所需的ASP.NET组件(控制面板 - >程序 - >打开/关闭 - > ASP.NET)不是.
所以安装它解决了这个问题
我遇到过同样的问题.这篇Microsoft支持文章为我修复了它.
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404-错误-当-它们-尝试到进程-扩展名的URL上-IIS -7-和-IIS-7.5
在Windows控制面板"程序和功能"应用程序的"打开或关闭Windows功能"对话框中,执行以下步骤:
-要么-
重新启用HTTP错误重定向模块或静态内容压缩模块可确保ASP.NET和IIS正确同步HTTP管道事件.这使URL路由模块能够处理无扩展的URL.
在我的情况下,以下方法帮助我:
aspnet_regiis -i
在 Windows\Microsoft.Net\Framework
将模块添加到system.webServer
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
...
</system.webServer>
Run Code Online (Sandbox Code Playgroud)尝试应用以下设置:
1)向IIS_IUSRS
用户提供必要的权限IIS Server
(右键单击网站,然后编辑权限>安全性).
2)如果你使用.NET Framework 4
,确保.NET Framework版本是v4.0
在Application Pool
你的网站使用.
希望这可以帮助...
在我意识到我正在使用 IIS 10(在 Windows 10 版本 2004 上)之前,我通读了这里的每个答案,寻找有效的方法,而这个问题是关于 IIS 7 的,已经有近十年的历史了。
话虽如此,从提升的命令提示符运行此命令:
dism /online /enable-feature /all /featurename:IIS-ASPNET45
Run Code Online (Sandbox Code Playgroud)
将/all
自动启用依赖的父功能:IIS-ISAPIFilter、IIS-ISAPIExtensions 和 IIS-NetFxExtensibility45。
之后,您会注意到两个新的(至少在我的环境中)应用程序池名称提到了 .NET v4.5。以前使用 DefaultAppPool 的 ASP.NET Web 应用程序将正常工作。
归档时间: |
|
查看次数: |
154697 次 |
最近记录: |