我安装了DotNetOpenAuth SDK-3.4.5.10201。vsix,我不能让它工作。它在本地工作(当我作为localhost运行时),但当我尝试发布它不工作。

我得到的IIS错误消息是:

错误总结 HTTP错误500.22 -内部服务器错误 一个ASP。检测到在集成管理管道模式中不适用的NET设置。

and:

模块ConfigurationValidationModule 通知BeginRequest 处理程序StaticFile 错误码0x80070032

下面就如何解决这个问题给出一些建议:

Things you can try: Migrate the configuration to the system.webServer/modules section. You can do so manually or by using AppCmd from the command line - for example, %SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/". Using AppCmd to migrate your application will enable it to work in Integrated mode, and continue to work in Classic mode and on previous versions of IIS. If you are certain that it is OK to ignore this error, it can be disabled by setting system.webServer/validation@validateIntegratedModeConfiguration to false. Alternatively, switch the application to a Classic mode application pool - for example, %SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool". Only do this if you are unable to migrate your application. (Set "Default Web Site" and "Classic .NET AppPool" to your application path and application pool name)

问题是我没有访问ISS服务器的权限,因为我不是它的所有者。有办法解决这个问题吗?


当前回答

我遇到了这个问题,受到@Jeremy Cook的回答的启发,我咬紧牙关,想知道到底是什么原因导致iis7集成模式不像我的web.config。以下是我的设想:

Web API(版本4.0.030506.0即旧版本) net 4.0 属性路由3.5.6为Web API[剧透警告:它是这个家伙!]

我想在一个必须使用. net 4的项目中使用属性路由(不幸的是),因此不能使用Web API 2.2(需要. net 4.5)。NuGet包善意地将此部分添加到<system。web >部分:

<system.web>
<httpHandlers>
      <add verb="*" path="routes.axd" type="AttributeRouting.Web.Logging.LogRoutesHandler, AttributeRouting.Web" />
    </httpHandlers>
</system.web>

[我说的是善意的,因为旧版本的IIS需要这部分]

删除这个部分让我通过了HTTP 500.23!!

简介: 我赞同杰里米的话,理解事情为什么不起作用而不仅仅是“掩盖症状”是很重要的。即使你必须掩盖症状,你也知道你在做什么(以及为什么):-)

其他回答

local的方法是错误的

第二个选项是你想要的。

在你的网里。配置,确保这些键存在:

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
    </system.webServer>
</configuration>

如果你仍然需要使用HTTP模块,你需要配置它(。NET 4.0框架):

<system.webServer>
   <modules runAllManagedModulesForAllRequests="true">
       <add name="MyModule" type="[Namespace].[Class], [assembly]"/>
   </modules>
   <validation validateIntegratedModeConfiguration="false"/>
</system.webServer>

在你的网里。配置确保这些键存在:

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
    </system.webServer>
</configuration>

以及检查Asp。Net impression =在IIS站点认证中禁用

我们在部署Azure应用程序服务时遇到了这个问题。我们的问题是我们必须从系统中移动模块。Web /httpmodules到system.webserver/modules。按工作方式移动子条目。这似乎与应用程序的年龄和它在升级到Azure应用程序服务之前运行的IIS实例有关。