Migração do mapeamento do manipulador do IIS7 da configuração de sites para a configuração do servidor

1

Temos vários sites em execução com cerca de 8 mapeamentos de manipulador em seus arquivos web.config. Infelizmente, eles estavam sendo copiados de site para site toda vez que um novo era adicionado.

Agora chegou a hora de eu tirar isso de todos os web.config e colocá-los nos Mapeamentos do Manipulador do servidor.

Se eu adicionar o mapeamento ao servidor enquanto ele ainda existir no web.config, o IIS lançará um erro quando você navegar para o site. Eu tenho algumas dezenas de web.config para editar aqui com cerca de 10 mapeamentos em cada.

Existe uma maneira de adicionar esses mapeamentos ao servidor sem ter que editar um arquivo web.config manualmente? Caso contrário, todos os sites ficarão inativos por alguns minutos enquanto eu entro em cada arquivo e removo os manipuladores.

Obrigado!

    
por Danomite 29.06.2011 / 22:07

1 resposta

2

Você realmente não tem outra escolha aqui se estiver fazendo isso manualmente. Mesmo que você tenha feito apenas um mapeamento de manipulador de cada vez por meio da interface do usuário, você precisará ter o site e o gerenciador global instalados ao mesmo tempo (ainda que brevemente) ou remover o site local e, em seguida, adicioná-lo novamente as configurações globais.

Você pode, claro, criar um script usando appcmd.exe :

http://www.iis.net/ConfigReference/system.webServer/handlers

Por exemplo:

Para remover um manipulador de um site (estou usando o site padrão como um exemplo) -

appcmd set config "Default Web Site" -section:system.webServer/handlers /-"[name='MyHandler']"

Para adicionar um manipulador à configuração global ou "APP HOST":

appcmd set config -section:system.webServer/handlers /+"[name='MyHandler',
    path='*.mything',modules='MyApp.MyHandler',preCondition='integratedMode',
    resourceType='Unspecified',verb='GET,HEAD,POST']" 
    /commit:apphost

Eu dividi o comando acima em quatro linhas apenas para torná-lo legível. Na verdade, ele deveria ser apenas uma linha.

Usar um script significa que seu tempo de interrupção seria de cerca de um minuto, em vez de vários.

    
por 29.06.2011 / 22:33

Tags