我安装了 DotNetOpenAuthSDK-3.4.5.10201.vsix,但无法正常工作。它在本地工作(当我作为本地主机运行时)但是当我尝试发布它时它不起作用。
我得到的 IIS 错误消息是
错误摘要 HTTP 错误 500.22 - 内部服务器错误 检测到 ASP.NET 设置不适用于集成托管管道模式。
和
Module ConfigurationValidationModule Notification BeginRequest Handler StaticFile Error Code 0x80070032
那么有一些关于如何解决问题的建议:
你可以尝试的事情:
将配置迁移到该 system.webServer/modules部分。您可以手动执行此操作,也可以从命令行使用 AppCmd - 例如, %SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/". 用于迁移您的应用AppCmd程序将使其能够在集成模式下工作,并继续在经典模式下和以前版本的 IIS 上工作。 如果您确定可以忽略此错误,则可以通过设置 system.webServer/validation@validateIntegratedModeConfiguration 为 false 来禁用它。 或者,将应用程序切换到经典模式应用程序池 - 例如, %SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool". 仅当您无法迁移应用程序时才执行此操作。 (将“默认网站”和“经典 .NET AppPool”设置为您的应用程序路径和应用程序池名称)
将配置迁移到该 system.webServer/modules部分。您可以手动执行此操作,也可以从命令行使用 AppCmd - 例如, %SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/". 用于迁移您的应用AppCmd程序将使其能够在集成模式下工作,并继续在经典模式下和以前版本的 IIS 上工作。
system.webServer/modules
%SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/"
AppCmd
如果您确定可以忽略此错误,则可以通过设置 system.webServer/validation@validateIntegratedModeConfiguration 为 false 来禁用它。
system.webServer/validation@validateIntegratedModeConfiguration
或者,将应用程序切换到经典模式应用程序池 - 例如, %SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool". 仅当您无法迁移应用程序时才执行此操作。 (将“默认网站”和“经典 .NET AppPool”设置为您的应用程序路径和应用程序池名称)
%SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool"
但问题是我无法访问 ISS 服务器,因为我不是它的所有者。有没有办法解决这个问题?
第二个选项是您想要的。
在您的web.config中,确保这些键存在:
web.config
<configuration> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> </system.webServer> </configuration>