IIS7将web.config从经典迁移到集成问题

时间:2012-03-02 17:34:28

标签: iis-7 module iis-6 httpmodule

我有一个定义了自定义httpmodule的web服务。我正在尝试将此Web服务启动到运行IIS7的生产服务器上,但只能使其在经典模式下运行。

我试过移动这一部分

 <system.web>
<httpModules>
  <add name="BasicAuthenticationModule" type="MyProject.UserAuthenticator.UserNameAuthenticator" />
</httpModules>
...

到system.webserver部分,如:

  <system.webServer>
<modules runAllManagedModulesForAllRequests="true">
  <add name="BasicAuthenticationModule" type="MyProject.UserAuthenticator.UserNameAuthenticator" />
</modules>

当我尝试这个IE时,我发现了这个错误:

  Config Error
  Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to          
  'BasicAuthenticationModule' 

我还尝试使用以下DOS命令自动迁移:

  appcmd migrate config "mysite/"

收到此消息:

  The module BasicAuthenticationModule with type "mytype" is already present in the application with a different type"", and was not migrated

我不是IIS专家,所以任何见解都会受到赞赏。


因此经过一些研究后,似乎已经存在一个名为BasicAuthenticationModule的本机模块。我可以通过重命名我的模块“BasicCustomAuthenticationModule”来消除我的问题。这是正确的方法,还是应该删除另一个?

谢谢! AFrieze

1 个答案:

答案 0 :(得分:5)

他们的名字是BasicAuthenticationModule。解决方案是重命名模块。

<httpModules>
  <add name="BasicCustomAuthenticationModule" type="MyProject.UserAuthenticator.UserNameAuthenticator" />
</httpModules>


    <system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
  <add name="BasicCustomAuthenticationModule" type="MyProject.UserAuthenticator.UserNameAuthenticator" />
</modules>