我在本地的Win 10计算机上安装了 ASP.NET MVC5网络应用。最近,我将一些Nuget包和MVC4升级到了MVC5。并将目标框架版本更新为.Net v4.5。
现在,当我从本地VS.Net 2015社区版调试Web应用程序时,我收到以下错误 -
HTTP错误500.22 - 内部服务器错误已设置ASP.NET设置 检测到不适用于集成管理管道模式。
我发现的大多数主题都是针对IIS的,我在谈论IISExpress。他们建议将网络应用的应用池更改为IIS中的经典(Post1,Post2,Post3)。但是 VS.Net使用IISExpress 所以我也深入研究了它 - C:\ Users \\ Documents \ IISExpress \ config \ applicationhost.config。试图编辑它,但它允许我只配置一个WebSite1,它是localhost:8080,我的运行为localhost:1960。
我还尝试了 appcmd 命令行方法,但除非我有一个网站' localhost:1960'似乎没有办法。我还寻找了一个IISExpress UI工具Jexus但我的本地主机:1960'网站未列出。
显然,设置
< validation validateIntegratedModeConfiguration =" false" />在 的web.config
修复它。但它不是最好的解决方案。我无法从web.config中删除httpHandlers或模块。
我需要知道如何操作VS.Net 2015在调试时调用的 IISExpress 。 不是IIS 。
谢谢。
答案 0 :(得分:4)
最后,我能够为VS.Net 2015及其IISExpress配置破解它。 IT无法在外部进行配置'如果你不断在VS.Net之外修改IIS或IISExpress设置,那么什么都不会起作用。
我花了一些时间将我的注意力集中到VS.Net proj属性和配置上。我发现VS.Net创建了自己的版本" applicationhost.config"可在 -
找到< myProject.sln路径> \ .VS \配置\对ApplicationHost.config 强>
这是我必须更改应用程序池的文件( applicationPool =" Clr4ClassicAppPool ) -
<sites>
<site name="WebSite1" ... ignore this sction if present
</site>
<site name="myProject" id="2">
<application path="/" applicationPool="Clr4ClassicAppPool">
<virtualDirectory path="/" physicalPath="D:\Source\myProject" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:1960:localhost" />
</bindings>
</site>
您只需要更改applicationPool(您的经典应用程序池名称可能是差异,在这种情况下从同一文件中获取正确的名称)。还要确保您正在更新纠正&#34;网站&#34; node(从VS.Net调试时,您的Web应用程序的正确localhost URL)
如果还有问题,请设置以下内容 -
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
如果还有问题,请在此文件中进行上述更改 -
C:\用户\&LT; youruser&GT; \文档\ IISExpress \配置\对ApplicationHost.config
也可能需要重启。希望这会有所帮助。
答案 1 :(得分:0)
我将为IIS express做出一个简单明了的答案。及其在2018年的工作。
1)转到.sln文件所在的主解决方案目录。
2)导航并打开:
\。vs \ config \ applicationhost.config
3)找到您的项目名称
<site name="Your.Project.ServiceName" id="2">
4)从 Clr4IntegratedAppPool -> Clr4ClassicAppPool
更改应用程序池<application path="/" applicationPool="Clr4ClassicAppPool">
5)重新启动Visual Studio。
6)尽情享受!