Preparando o IIS para o Magic RIA Server

Se você instalou o Magic xpa com a intenção de criar soluções RIA (desktop ou mobile), ter um webServer é pré-requisito (ao menos até as versões atuais do Magic).

Como o MS-Windows já possui um componente deste tipo, chamado IIS, adotá-lo simplifica o processo.

Contudo, por questões de política de boa vizinhança e de segurança, as versões mais novas do MS-Windows não trazem o IIS instalado por default. Por isso, vamos ver os passos necessários para habilitar o IIS para utilização plena com o Magic xpa/xpi.

Passo 1 – Instalar o IIS 

Vá ao Painel de Controle – Adicionar/Remover Programas – Recursos do Windows, e assinale a opção Serviços de Informações da Internet:

Imagem_001

 

Este recurso se desdobra em várias outras opções, e aqui existe uma pegadinha. As opções padrões não contém tudo que o Magic xpa necessita. Temos de adicionar outras mais, explicitamente. Por isso, assinale todas as opções para:

  • Ferramentas de Gerenciamento Web
  • Recursos de Desenvolvimento de Aplicativos
  • Recursos HTTP Comuns

Imagem_002

 

Finalizada a instalação, surgirá nas Ferramentas Administrativas a opção de Gerenciador do IIS:

Imagem_003

 

Dica #1: O IIS tentará utilizar a porta tcp nro. #80. Se você possuir outros aplicativos que também alocam esta porta, ajuste suas configurações para evitar conflitos.

Dica #2: O IIS não está disponível para versões mais simples do MS-Windows, como o Windows Starter ou Home Edition.

Passo 2 – Configurar o IIS

Vá ao Painel de Gerenciamento do IIS, e confira se os componentes destacados abaixo estão listados no seu servidor:

Imagem_004

 

Se estiverem, os módulos necessários estão todos instalados.

Por padrão, manipuladores CGI e ISAPI genéricos estão desabilitados. Por isso, dê dois cliques na opção Mapeamentos de Manipulador, clique com o botão direito em CGI-exe (ou ISAPI-dll) e escolha Editar Permissões do Recurso. Assinale a opção Executar:

Estes manipuladores tornar-se-ão habilitados.

Isso deve ser feito diretamente no “alias“, para não provocar efeitos colaterais em outras pastas que possuam DLLs que não devam ser tratadas como ISAPI, por exemplo.

Estas configurações são suficientes, para ambientes até o Magic xpa 2.5e.

 

Para conferir se o IIS  está on-line e funcionando corretamente, vá até Default Web Site e com o menu do botão direito do mouse escolha Gerenciar Site – Procurar:

Imagem_006

 

A tela padrão do IIS  deverá aparecer no seu webBrowser:

Imagem_007

 

Se você operacionalizar o IIS antes de instalar o Magic xpa, o InstallShield do Magic já criará os webAlias (pastas públicas) necessários para o RIA Server:

Imagem_008

 

Porém, se você só conseguiu instalar e configurar o IIS após a instalação do Magic xpa, estes webAlias precisam ser criados manualmente (se não quiser instalar outra vez o Magic).

Existem dois utilitários na pasta Scripts do Magic para facilitar este trabalho:

Imagem_009

Um para o IIS até a versão 6.0, e o outro para o IIS 7.0 em diante:

Imagem_010

 

Exemplo:

CrtVDir_IIS7.exe CDC:\MSE\Magic\xpa\2.3\Scripts” “MagicXpa23Scripts5

São três pastas do Magic xpa que precisam ser publicadas através de um webAlias:

  • Browser_Client_Cache
  • PublishedApplications
  • Scripts

Imagem_011

 

É importante usar os mesmos nomes de webAlias que já estão configurados no MAGIC.INI, senão a execução dos projetos RIA não funcionarão:

Imagem_012

A partir do Magic xpa 3.0 em diante, é importante também que este “alias” da pasta “Scripts” seja convertido em uma “Aplicação” ASP.NET.

Para tanto, além de ter o ASP.NET instalado na máquina ( https://technet.microsoft.com/pt-br/library/cc731252(v=ws.10).aspx ), é necessário também:

Ter um pool de aplicações ASP.NET 32 bits

Converter o “alias” em “aplicação ASP.NET”

NOTA: apesar de não obrigatório, este item é também uma boa prática de configuração para versões anteriores ao Magic xpa 3.0

Também, assegure-de que não haverá restrições de “direitos de acesso” as estas pastas do Magic xpa, adicionando o usuário “Todos (EveryOne)” com “Controle Total (Full Control)“, nas três pastas mencionadas acima.

E para finalizar, você precisa copiar para a pasta Scripts do  Magic xpa o requester ISAPI (MGRqIspi.dll) compatível com o seu IIS, 32 ou 64bits:

Imagem_013

Com estes passos, o seu webServer (IIS) já está configurado para trabalhar com o Magic xpa RIA Server.

Porém, os testes dão certo apenas enquanto você está utilizando somente a máquina onde o xpa + IIS estão instalados. Ao abrir o RIA Client em outra máquina (ou de um dispositivo móvel), você identifica que ele não comunica com o RIA Server. Na maioria das vezes, é porque há um firewall nesta máquina servidora, bloqueando requisições externas. Se for o firewall nativo do  MS-Windows, vá até Painel de Controle – Firewall – Configurações Avançadas, e crie uma nova Regra de Entrada:

Imagem_014

Crie uma regra do tipo Porta – Tcp, e libere o acesso à porta que o IIS utiliza, normalmente a 80:

Imagem_015

 

Pronto. Agora você pode acessar sua aplicação RIA também de outras máquinas.

Manoel Frederico - Gerente de Produto e Magic Evangelista
Manoel Frederico – Gerente de Produto e Magic Evangelista

7 comentários

  1. Para mim o erro “500” acontece ao utilizar a MGrqispi.dll, usando o MGrqcgi.exe funciona normal. A versão 3x não tem as pastas 32 e 64 bits separadas como na 2x, o erro pode estar relacionado a versão da dll?

    1. Geralmente, o motivo é porque o webAlias (ex: MagicScripts) no IIS está associado a um pool de aplicativos incompatível com o requester ISAPI.
      Verifique qual o pool associado no IIS e altere ele entre 32Bits/64Bits, reiniciando o serviço do IIS ( W3SVC ) em seguida

  2. Ao utilizar um acesso externo, via dispositivo mobile, o app é imediatamente fechado logo após ser iniciado, sem nenhuma mensagem de erro no dispositivo ou log no servidor. Alguma sugestão do que possa estar ocorrendo?

    1. André,

      erro 500 normalmente é pq:

      1. Se está usando o requester 64 bits no IIS 32 bits (ou vice-versa)

      2. O usuário do serviço IIS não tem os direitos necessários na pasta do requester do Magic. Normalmente eu acrescento o usuário ‘EveryOne’ com ‘Full Read/Write’ nestas pastas.

      3. O requester do Magic não está liberado para acesso no IIS

      Veja mais no Magic Community ( http://community.magicsoftware.com/en/library?book=en/Magicxpa/&page=Handling_the_IIS_500_Internal_Server_Error.htm )

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *