2012-03-02 1 views
2

У меня есть веб-сервис, который определяет пользовательский httpmodule. Я пытаюсь запустить этот веб-сервис на производственный сервер под управлением IIS7, но только смог запустить его в классическом режиме.IIS7 Migrate web.config от классического до интегрированного вопроса

Я попытался перенести этот раздел

<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

ответ

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>