Acessando aplicativos da web do IIS por meio de diferentes ligações

1

Estou hospedando vários aplicativos da Web no IIS 7.5 no Windows Server 2008 R2. O servidor tem um único endereço IP e estou usando nomes de host para diferenciar as ligações para cada aplicativo. O servidor tem alias DNS diferentes que correspondem aos nomes de host, portanto, tudo funciona bem na rede corporativa. Por exemplo:

  • Quando eu digito link , a "intranet" é resolvida pelo DNS para o IP do servidor e uma solicitação é feita para o IIS, que usa a ligação com o " intranet "nome do host, que por sua vez é mapeado para o aplicativo da Web da Intranet.

O problema é que eu também quero que os usuários possam acessar os aplicativos de fora da rede corporativa, usando o IP do servidor (que é público). Isso significa que o IIS também deve reconhecer solicitações feitas no formato link como correspondentes ao aplicativo da Web da Intranet. A única maneira que eu encontrei para conseguir isso é colocar as pastas físicas para todos os aplicativos da web na pasta física do site padrão e deixar a ligação padrão para este site. Isso significa que:

  • Quando eu digito link , é feita uma solicitação ao IIS, que usa a ligação sem nome de host, que, em Transforme mapas no site padrão e, neste site, ele procura na pasta física "intranet".

As coisas devem funcionar bem na teoria, mas eu tropecei no seguinte problema. A maioria dos aplicativos da web que estou hospedando são aplicativos ASP.NET e usam arquivos web.config. Quando eu acesso um desses aplicativos diretamente, através do primeiro método (ou seja, usando um nome de host), as coisas funcionam bem. No entanto, quando eu o acesso usando o segundo método, o IIS reclama que algumas configurações no web.config estão no nível incorreto. Eu sei por que isso acontece: a solicitação para o IIS está sendo feita para uma pasta física dentro de um aplicativo da web de nível superior, em vez do aplicativo da web que pretendo visitar, devido à maneira como configurei as ligações.

A minha pergunta é: uma vez que esta estratégia de configuração quebra o comportamento do web.config do ASP.NET (e provavelmente outras coisas também), existem outras alternativas que devo considerar para permitir o acesso baseado em IP e nome? Obrigado.

EDITAR . Eu encontrei uma solução para este problema agora; por favor, veja minha própria resposta abaixo.

    
por CesarGon 08.08.2011 / 15:57

2 respostas

1

Encontrei uma solução para esse problema.

O que estou fazendo agora é isso. Eu configurei todos os aplicativos da web como:

  • Um site no IIS, com sua própria vinculação a um nome de host específico, como "intranet", no meu exemplo original.
  • Um aplicativo da Web no Site padrão, que mantém a ligação padrão pega-tudo sem nome de host.

Por exemplo, o aplicativo da web Intranet aparece como um site no IIS chamado "Intranet" com uma ligação ao nome do host "intranet", para que as pessoas acessem o servidor como link será direcionado para lá; e também aparece como um aplicativo Webb chamado "Intranet" no site padrão do servidor, para que os usuários acessem o servidor como link será enviado para lá também . São duas maneiras diferentes de acessar a mesma pasta física e o mesmo conteúdo, e funciona perfeitamente.

Obrigado a todos que ajudaram!

    
por 09.08.2011 / 21:07
0

Resumindo: não use o segundo método.

Nas Ligações do site para o site, basta especificar a intranet e yourpublicname.seudominio.com como cabeçalhos de host.

Então, supondo que seja acessível pela Internet, o mesmo site será exibido para ambos, com diferentes ligações.

Traduzir o caminho de e para um site é complicado; melhor manter o layout do mesmo site e apenas adicionar uma ligação?

(Por que não fazer isso?)

    
por 09.08.2011 / 04:57