como usar o caminho do local no web.config para definir um documento padrão no IIS7

2

Eu tenho um site multi-tennant que estou migrando do IIS5 no Win 2000 para o IIS7 no Win Server 2008 64bit.

Cada participante tem seu próprio nome de domínio que aponta para o endereço IP do servidor de aplicativos.

Em seguida, configuramos um site no IIS para cada nome de domínio e definimos o caminho físico para o caminho onde nossos arquivos ASP (clássicos) estão localizados.

Para cada site, desejo configurar um documento padrão que execute um arquivo ASP e transmita o CompanyID na string de consulta.

Por exemplo,
www.site1.com chamaria Connect.asp? CompanyID = 425
www.site2.com chamaria Connect.asp? CompanyID = 426
etc

Para conseguir isso no IIS7, eu tenho um arquivo web.config no caminho físico raiz dos arquivos ASP que se parece com isso:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="www.site1.com">
    <system.webServer>
    <defaultDocument>
        <files>
            <add value="Connect.asp?CompanyID=425" />
        </files>
    </defaultDocument>
    </system.webServer>
</location>
<!-- a location entry for every other website here... -->
<location path=".">
<system.webServer>
    <defaultDocument>
        <files>
            <add value="Connect.asp?CompanyID=1" />
        </files>
    </defaultDocument>
</system.webServer>
</location>
</configuration>

Isso não está funcionando - todos os sites estão indo para a entrada CompanyID = 1.

Alguém pode apontar o que estou fazendo errado?

Eu tentei definir o atributo path como

  1. o nome do domínio
  2. o nome amigável do site no IIS

De qualquer forma, não funciona.

    
por Nils 09.12.2009 / 17:09

1 resposta

2

Encontrei a solução neste link nos fóruns do iis

Você pode colocar a configuração nas tags de localização em applicationhost.config em vez de no arquivo web.config - fazendo algo parecido com isto na linha de comando:

% windir% \ system32 \ inetsrv \ appcmd.exe config config "MySite1" -section: system.webServer / defaultDocument - + arquivos. [value = 'newdoc.aspx'] -commitpath: apphost

  • MySite1 é o nome amigável do site no IIS (o nome do site que você vê na árvore à esquerda)
  • newdoc.aspx é o nome do seu documento padrão para esse site (você pode especificar uma querystring)

Assim, para o exemplo que postei acima, executei este comando para cada um dos meus sites

% windir% \ system32 \ inetsrv \ appcmd.exe defina config "MySite1 - www.site1.com" -section: system.webServer / defaultDocument - + arquivos. [value = 'Connect.asp? CompanyID = 425'] -commitpath: apphost

e

% windir% \ system32 \ inetsrv \ appcmd.exe defina config "MySite2 - www.site2.com" -section: system.webServer / defaultDocument - + arquivos. [value = 'Connect.asp? CompanyID = 426'] -commitpath: apphost

Quando você for para o programa de documento padrão para os dois sites no programa de gerenciamento do IIS7, verá os diferentes documentos padrão definidos para os dois sites.

    
por 10.12.2009 / 13:07