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:
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
Finalizada a instalação, surgirá nas Ferramentas Administrativas a opção de Gerenciador do IIS:
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:
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:
A tela padrão do IIS deverá aparecer no seu webBrowser:
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:
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:
Um para o IIS até a versão 6.0, e o outro para o IIS 7.0 em diante:
Exemplo:
CrtVDir_IIS7.exe CD “C:\MSE\Magic\xpa\2.3\Scripts” “MagicXpa23Scripts” 5
São três pastas do Magic xpa que precisam ser publicadas através de um webAlias:
- Browser_Client_Cache
- PublishedApplications
- Scripts
É 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:
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:
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:
Crie uma regra do tipo Porta – Tcp, e libere o acesso à porta que o IIS utiliza, normalmente a 80:
Pronto. Agora você pode acessar sua aplicação RIA também de outras máquinas.
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?
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
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?
Deve haver logs no sistema interno de logs do Android, com detalhes do que ocorre, você pode iniciar pesquisando estes logs no SO (Android):
https://developer.android.com/studio/debug/logcat?hl=pt-br
Olá,
muito bom o tutorial, mas continuo com a seguinte mensagem de erro:
—————————
16:02:38 WebException
—————————
http://DES002.is2adm.local/OpenClientCourseScripts/MGrqispi.dll
O servidor remoto retornou um erro: (500) Erro Interno do Servidor.
Do you wish to retry connecting?
—————————
Sim Não
—————————
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 )
O tutorial me ajudou demais, claro e objetivo.