为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET 4.5 MVC 4在Windows Server 2008 IIS 7上不起作用

ASP.NET 4.5 MVC 4在Windows Server 2008 IIS 7上不起作用

哆啦的时光机 2019-11-29 09:33:35
显然,我缺少一些东西,无法在IIS 7上的Windows Small Business Server 2008上部署简单的ASP.NET MVC 4,.NET 4.5应用程序。已安装.NET Framework 4.5。是否应该在应用程序的“应用程序池”基本设置上看到该版本(4.5)?目前,我只有2.0和4.0,因为4.5就像3.5一样,仅添加在4.0框架之上,我想这很正常。当浏览主页时,出现以下错误:403-禁止访问:拒绝访问。您无权使用您提供的凭据查看此目录或页面。当我请求名为Page / page / index的唯一控制器时,我得到了404 not found页面。像ASP.NET进程一样,永远不会获得http请求。我可以请求一个简单的HTML页面。应用程序池设置为.NET 4.0,并集成为托管管道模式。NETWORK SERVICE对目录具有读/写访问权限。从VS2012开始,该应用程序完美运行。我对此处的错误一无所知,搜索引擎查询并没有太大帮助。有没有人会暗示,将不胜感激。谢谢编辑dll已在bin文件夹中,例如System.Web.Mvc,System.Web.Razor等。我创建了一个空的test.aspx页面,以确保asp.net worker进程正在获取请求,是的,该页面还可以。因此,尽管我在该服务器上运行了ASP.NET MVC 3 Web应用程序,但看来MVC路由无法正常工作。安装.NET 4.5之后,我做了一个aspnet_regiis -iru,以防万一,在应用程序上添加了一个aspnet_client文件夹,但这仍然不能解决问题。在“ IIS身份验证”部分启用了“匿名身份验证”,并且“授权”显示允许所有用户使用。已安装ASP.NET MVC 4,我只是做了修复以确保。即使安装了ASP.NET MVC 4,标准IIS仍会返回来自请求/ page / index操作的404错误,而不是标准的ASPNET错误。因此,确实确实好像MVC 4框架没有正确安装,我只是仔细检查并进行了修复。我可以在哪里继续调查?@Mystere Man,我已经更改了匿名身份验证以使用应用程序池标识,停止,启动应用程序,并且仍然是相同的错误。看起来好像ASP.NET MVC 4没有接受请求。这是web.config的一部分:  <system.webServer>    <validation validateIntegratedModeConfiguration="false" />    <handlers>      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />   
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

尝试使用此:


<system.webServer>

    <modules runAllManagedModulesForAllRequests="true" />

    ...

</system.webServer>

编辑:


上面的解决方案适用于.NET 3.5或更低版本。如果使用的是.NET 4.0或更高版本,则可能要尝试安装IIS7 QFE


此外,这篇文章值得一读,了解这两个之间的区别。


查看完整回答
反对 回复 2019-11-29
?
慕少森

TA贡献2019条经验 获得超9个赞

我有一个类似的问题。我尝试了此处描述的许多解决方案(Web.Config system.webServer配置条目等),但均无济于事。最后,我发现了特定安装的问题所在。我将网站发布到本地文件系统,然后将这些文件复制到服务器上。事实证明文件Global.asax没有成为已发布文件的一部分。复制完该文件后,错误消失了。


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 714 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信