我正在配置一个MVC 3项目来处理IIS的本地安装,并遇到以下500错误:
处理程序“PageHandlerFactory-Integrated”有一个错误的模块 “ManagedPipelineHandler”在其模块列表中。
事实证明,这是因为即使我在“添加功能”对话框中选中了该框,ASP.Net也没有完全安装IIS。为了解决这个问题,我只需在命令提示符下运行以下命令
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
如果我使用32位系统,它将如下所示:
%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i
我的问题是,有没有办法在Windows 7机器上安装IIS以使用.NET 4.0(MVC 3)而无需采取额外步骤?
答案 0 :(得分:940)
事实证明,这是因为即使我在“添加功能”对话框中选中了该框,ASP.Net也没有完全安装IIS。为了解决这个问题,我只需在命令提示符下运行以下命令
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
如果我使用32位系统,它将如下所示:
%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i
记得以管理员身份运行命令提示符( CTRL + SHIFT + ENTER )
答案 1 :(得分:17)
接受的答案是正确的,但有时您会得到“ Aspnet_regiis.exe无法识别为内部或外部命令,可运行程序或批处理文件。”错误消息。
要解决此问题,请尝试以下操作:
确保您的.NET 4.0安装没有损坏(运行安装程序并“修复”它)。它根本没有安装在你的机器上。
如果您确定没有安装.NET 4.0并希望将其作为.NET 2.0运行,请尝试this:
如果您看到消息“Aspnet_regiis.exe未被识别为 内部或外部命令,可操作程序或批处理文件。“,开关 到了 C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i 在命令提示符下。
答案 2 :(得分:8)
要解决此问题,请尝试repair the .net framework 4
,然后运行命令
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
答案 3 :(得分:8)
错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误的模块“ManagedPipelineHandler”
我发现这些文章只需在命令提示符下运行以下命令即可解决此问题。
%windir%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -i
如果系统是32位,它将如下所示:
%windir%\ Microsoft.NET \ Framework \ v4.0.21006 \ aspnet_regiis.exe -i
但是,当我尝试使用cmd提示执行这些命令时,我收到以下错误/警告消息:
C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft(R)ASP.NET RegIIS版本4.0.30319.33440用于安装和卸载ASP.NET的管理实用程序本地机器。版权所有(C)Microsoft Corporation。版权所有。开始安装ASP.NET(4.0.30319.33440)。此版本的操作系统不支持此选项。管理员应该使用"使用" Turn Win dows功能开/关"安装/卸载带有IIS8的ASP.NET 4.5。对话框,服务器管理器管理工具或dism.ee命令行工具。有关详细信息,请参阅http://go.microsoft.com/fwlin k /?LinkID = 216771。完成安装ASP.NET(4.0.30319.33440)。
要在Windows 8.1上修复此问题,我建议您执行以下操作。
解决方案:
转到 - 打开或关闭Windows功能>互联网信息服务>万维网服务>应用程序开发功能>启用ASP.NET 4.5
这应解决问题。
答案 4 :(得分:3)
如果要在不安装MVC的情况下部署MVC应用程序,可以deploy the MVC DLL's with your application。这样可以安装MVC 3.您可以在某些.Net 4.0命名空间中使用功能,而无需使用类似的方法安装.Net。
答案 5 :(得分:3)
我还会先检查一下:应用程序池设置为正确的框架,并且IIS应用程序实际上指向放置文件的文件夹
答案 6 :(得分:2)
要在 Windows 8.1 Professional 计算机上解决此问题,请执行以下操作。
安装Web平台安装程序。 http://www.microsoft.com/web/downloads/platform.aspx
在Web平台安装程序中安装 ASP.NET 4.5 (此功能有一个依赖项)。
如果您只是从最常用的答案中尝试上述cmd提示命令,您将收到以下错误/警告消息:
C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_regiis.exe -i Microsoft(R)ASP.NET RegIIS版本4.0.30319.33440 管理实用程序,用于在本地计算机上安装和卸载ASP.NET。 版权所有(C)Microsoft Corporation。版权所有。 开始安装ASP.NET(4.0.30319.33440)。 此版本的操作系统不支持此选项。 Administr ators应该使用" Turn Win来安装/卸载带有IIS8的ASP.NET 4.5 dows功能开/关"对话框,服务器管理器管理工具或dism.e xe命令行工具。有关详细信息,请参阅http://go.microsoft.com/fwlin K /?链路ID = 216771。 完成安装ASP.NET(4.0.30319.33440)。
答案 7 :(得分:2)
我遇到了同样的问题,我的解决方案是:
转到"打开或关闭Windows功能" >互联网信息服务>万维网服务>应用程序开发功能>启用ASP.NET 4.5
答案 8 :(得分:2)
我试图在命令提示符下执行aspnet_regiis,但我得到了答案,我没有管理员权限。 然后,经过一些谷歌搜索和寻找解决方案,我试图右键单击cmd并以管理员身份运行它。当对话框出现时确认是,再次运行aspnet_iis蚂蚁就像一个魅力。 简而言之: 1.检查app_pool中的.NET框架 2.以管理员身份运行cmd 3.运行aspnet_regiis -i
答案 9 :(得分:1)
- 使用应用程序初始化功能 - 由于配置继承而要求错误的页面(.asp)
仅在第一个用户连接上发生500.21。后续连接工作。
通过更正.NET网站上的applicationInitialization url集合解决。
答案 10 :(得分:1)
我在Windows Server 2012中遇到了类似的问题,在服务器管理器中安装“ Application Server ”功能解决了这个问题。
答案 11 :(得分:0)
我有同样的问题,在我的情况下,处理程序在两个地方:
<system.web>
...
<httpHandlers>
<add verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
...
<add name="FrontController" verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI"/>
</handlers>
</system.webServer>
当我从[system.webServer]中删除我的处理程序时,我的问题就消失了。
答案 12 :(得分:0)
这些都不适合我。因此,当我将各种应用程序池与有效的应用程序池进行比较时,我不得不进入应用程序池的高级设置,并设置
启用32位应用程序= true
然后它工作正常!
答案 13 :(得分:0)
在某些情况下会出现此错误,因为ASP .NET的Microsoft .NET Framework 4.0配置已损坏,如果在Visual Studio 2010或Microsoft SQL Server 2008之前安装了Microsoft Visual Studio 2012,则会发生此错误。
在尝试了不同的事情后,我得出结论,通过运行以下命令修复.Net安装。有关更多信息,请访问链接。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache\v4.5.51209\setup.exe /repair /x86 /x64 /ia64 /norestart
https://msdn.microsoft.com/en-us/library/hh168535(v=nav.80).aspx
答案 14 :(得分:0)
我遇到了这个问题,发现即使使用非Express版本,删除以下文件夹也有帮助。快递:
C:\Users\<user>\Documents\IISExpress
答案 15 :(得分:0)
要解决此问题,请尝试修复.net框架4,然后运行命令
typealias Next = (JSON) -> ()
typealias JSON = [String: Any]
typealias Middleware = (JSON, Next) -> ()
func process(middlewareList: [Middleware], value: JSON, done: @escaping Next) {
guard !middlewareList.isEmpty else {
done(value)
return
}
let middleware = middlewareList.first!
let slice = Array(middlewareList[1..<middlewareList.count])
middleware(value) { json in
process(middlewareList: slice, value: json, done: done)
}
}
let hook1: Middleware = { json, done in
print("hook 1")
done(json)
}
let hook2: Middleware = { json, done in
print("hook 2")
var copy = json
copy["hi"] = "hi"
done(copy)
}
process(middlewareList: [hook1, hook2], value: [:], done: { json in
print(json)
})
答案 16 :(得分:0)
我尝试将apppool从经典切换到集成时,我在其中一个网络服务器上遇到此问题。它在我的其他两个Web服务器上运行良好,而不仅仅是这个。它是Server 2012,因此您无法执行aspnet_regiis并且没有setupcache文件夹来尝试修复。一切都在功能下正确设置。
在浏览%windir%\ system32 \ inetsrv \ config \ applicationHost.config之后,我发现了一个关键缺失位。在我的非工作人员之下缺少以下两行:
<add name="ManagedEngineV4.0_32bit" image="C:\Windows\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
<add name="ManagedEngineV4.0_64bit" image="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
一旦我添加它们,一切都很好。
答案 17 :(得分:0)
运行cmd
将Aspnet_regiis.exe
从以下位置拖放到命令提示符中:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
类型-i
(例如Aspnet_regiis.exe -i
)
点击进入
祝你好运!