Como executo vários aplicativos MVC em um subdomínio no IIS7?

2

Olá e obrigado por procurar.

Antecedentes

No momento, estou concluindo um contrato de desenvolvimento e o cliente gostaria que eu impusesse uma compilação do aplicativo ao servidor baseado no IIS 7, no qual gostariam de executar vários aplicativos MVC.

Um dos problemas que tenho de imediato é que este servidor já é um subdomínio na sua rede maior. Então, se eu inserir SERVERNAME no meu navegador, ele direciona automaticamente para SERVERNAME.COMPANYNAME.COM .

Agora, tudo bem se eu colocar meu aplicativo no site / root padrão. Neste cenário, clicar em um link que solicita admin.html direciona para 'SERVERNAME.COMPANYNAME.COM/admin.html' como de costume.

MAS eles querem que eu coloque o aplicativo em um subdomínio neste servidor para que eles também possam executar outros aplicativos no mesmo servidor. Então, eu suponho que preciso de MYAPP.SERVERNAME.COMPANYNAME.COM , mas não tenho ideia de como fazer isso.

A complicação é que meu aplicativo e os futuros que desejam instalar são todos baseados em MVC, que interceptam e reescrevem URLs. Suponho que isso cuida de si mesmo se eu puder obter com êxito meu aplicativo em um subdomínio para começar.

O que tentei

  • Criando um novo site no servidor em seu próprio pool de aplicativos
  • Definindo a ligação desse site para MYAPP.SERVERNAME.COMPANYNAME.COM
  • Definindo a ligação desse site para MYAPP
  • Definindo a ligação desse site para MYAPP.SERVERNAME
  • Definindo a ligação desse site para MYAPP.SERVERNAME.COM
  • Definindo a ligação desse site para MYAPP.COMPANYNAME.COM

Nada está funcionando. Estou sentindo falta de algo simples aqui?

Obrigado,

Matt

    
por Matt Cashatt 08.09.2012 / 18:42

1 resposta

1

A primeira coisa é que você está testando essas ligações do servidor local? Em caso afirmativo, dois problemas:

  1. Para fins de teste, você precisa colocar seu myapp alias no arquivo de hosts locais (C: \ Windows \ System32 \ Drivers \ etc \ hosts).
  2. Você precisa desativar a proteção de loopback, o que impedirá que você acesse serviços em um servidor de si mesmo, se estiver usando um alias de DNS. Eu tenho uma descrição desta questão aqui (muitas vezes desiste Administradores do SharePoint) . A solução rápida (embora desabilite um recurso de segurança secundário do Windows) é executá-la em um prompt do PowerShell (executado como administrador): New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -value "1" -PropertyType dword -Force e reinicialização.

Depois disso, eu diria que, no geral, isso não está relacionado ao MVC tanto quanto ao DNS. Você pode fazer quantos Sites no IIS quiser (MVC ou outro) e criar todos os nomes DNS que desejar, contanto que DIGA os servidores DNS da rede sobre o nome para correspondência de IP, para que as pessoas possam encontrá-los.

Parece que você está acostumado a simplesmente colocar um site em um servidor e usar http://servername de outros computadores na rede. O que eu sempre prefiro fazer é NUNCA usar o nome do host para aplicativos da web. Eu criaria um "DNS Alias" em qualquer solução DNS que o administrador de rede usasse (provavelmente Windows DNS Server) para apontar "appname" para ser um alias de "servername". Em seguida, na ligação do site eu coloquei no cabeçalho do host que eu quero. A vantagem aqui é dupla: posso colocar mais de um aplicativo da web em um servidor e, em seguida, posso mover esse aplicativo da web para outro local sem avisar os usuários (basta alterar o apontador DNS Alias).

Portanto, no seu caso, eu recomendo http://myapp (assumindo que seja somente interno) e na Zona DNS de companyname.com eles apenas adicionam um alias de DNS (registro CNAME) para myapp para apontar para servername.

Se você acha que será acessível a partir do firewall via Internet, então você vai querer usar o FQDN como http://myapp.companyname.com . As mesmas etapas para o DNS se aplicam, você só precisa também colocá-lo no DNS da Internet.

Eu NÃO faria subdomínios do nome do servidor web, porque isso torna todos os aplicativos vinculados a esse servidor web (você não pode movê-los sem dificuldades para cada usuário ao alterar seus links e hábitos). Não há menos / mais trabalho para myapp.companyname.com ou myapp.servername.companyname.com, então porque não tornar mais fácil para todos com myapp.companyname.com. Se eles disserem que é para identificar a localização mais fácil, é para isso que o Alias do DNS é ... basta efetuar o ping myapp.companyname.com e o Alias do DNS fará com que o ping informe o nome DNS do servidor REAL.

    
por 08.09.2012 / 22:53