gpt4 book ai didi

ASP.NET 4.5 MVC 4 无法在 Windows Server 2008 IIS 7 上运行

转载 作者:行者123 更新时间:2023-12-02 07:12:53 28 4
gpt4 key购买 nike

显然我错过了一些东西,我无法在 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 的唯一 Controller 时,我得到 404 未找到页面。就像 ASP.NET 进程永远不会收到 http 请求一样。

我可以请求一个简单的 HTML 页面。

应用程序池设置为 .NET 4.0 并集成为托管管道模式。

NETWORK SERVICE 具有对该目录的读/写访问权限。

当然,该应用程序在 VS2012 上可以完美运行。

我对这里的问题一无所知,搜索引擎查询也没有多大帮助。

有谁能给点提示吗,我将不胜感激。谢谢

编辑

dll 已经位于 bin 文件夹中,例如 System.Web.Mvc、System.Web.Razor 等。

我创建了一个空的 test.aspx 页面以确保 asp.net 工作进程正在获取请求,是的,该页面正常。因此,尽管我的 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" />
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>

编辑2012/09/27

我已重新配对 Microsoft Framework .NET 4.5 并修复 ASP.NET MVC 4,重新部署简单的 ASP.NET MVC 4 应用程序,但仍然出现相同的行为。我不知道下一步该做什么,所以我开始悬赏,希望有人能帮助我找到问题。

编辑2014/01/31

当我问这个问题时,我将 runAllManagedModulesForAllRequests 标记为已接受的答案,因为它确实解决了问题。但我肯定不会在生产中使用它。我问为什么我必须这样做,但没有得到任何答案。

Martin Hollingsworth答案确实是我一直在寻找的,这是解决此问题的好方法,并且不会出现与 runAllManagedModulesForAllRequests 相关的所有性能问题。

我们几乎放弃并购买了一个新的 Windows 2012 服务器(ASP.NET MVC 应用程序可以按原样工作)。在尝试了 Martin 的解决方案后,Windows 2008 服务器成功了。

最佳答案

尝试使用这个:

<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
...
</system.webServer>

编辑:

上述解决方案适用于 .NET 3.5 或更低版本。如果您使用 .NET 4.0 或更高版本,您可能想尝试 installing IIS7 QFE

此外,this article值得阅读以了解两者之间的区别。

关于ASP.NET 4.5 MVC 4 无法在 Windows Server 2008 IIS 7 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12495346/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com