我们已将 ASP.NET Web 应用程序从 IIS6 升级到 IIS7 集成模式。我们的应用程序使用:
<identity impersonate="true"/>
因此我们必须设置:
<validation validateIntegratedModeConfiguration="false" />
这合理吗?我的直觉告诉我不合理,但在 Google 上搜索此问题时,访问的每个页面都建议使用此“解决方法”。
在 IIS7 集成中,模拟不再是一种好的做法吗?我们是否应该放弃它并提出其他解决方案?
答案1
如果您的应用程序需要在 BeginRequest 和 AuthenticateRequest 中集成身份验证,那么您应该将应用程序池更改为经典模式。
如果您在页面生命周期的这两个阶段不依赖集成身份验证,那么您可以通过将validateIntegratedModeConfiguration 设置为false来继续忽略收到的错误。
您还可以选择使用appcmd 迁移将您的 IIS6 应用程序移至 IIS7 集成模式配置。
有关 IIS 7 中此行为的更多信息,请参见此处: http://www.iis.net/learn/application-frameworks/building-and-running-aspnet-applications/aspnet-integration-with-iis