PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → WAS - Webdev Aplicativo Server
WAS - Webdev Aplicativo Server
Débuté par Boller, 25 aoû. 2015 05:13 - 139 réponses
Membre enregistré
4 595 messages
Posté le 25 août 2015 - 05:13
Prezados

Segue aqui uma coletânea de informações sobre o assunto WAS para simplificar a sua instalação.

Caso tenha contratado uma vps deve se verificar a questão se tem ou não conexão SSL para Https://
Não é obrigatório, mas na hora de instalar não deve marcar essa opção.


WAS WINDOWS
http://www.thenextage.com/wordpress/setting-up-the-webdev-application-server-on-a-windows-2012-cloud-server/


WAS LINUX
http://www.thenextage.com/wordpress/setting-up-the-webdev-application-server-on-a-linux-cloud-server/

Esses 2 link foram desenvolvidos por:

Pete Halsted - NextAge

http://www.thenextage.com

Pete HalstedPete Halsted has been developing custom business management applications for small to medium-sized companies, since 1987. His focus is on client/server, distributed and cloud based development utilizing WinDev, WebDev, and PostgreSQL. Pete is a Clarion Certified Developer with 25 years in the industry, has spoken at several Developers conferences, and provided Developer training and mentoring on a one on one basis. He has served companies both large and small as Project Manager, Lead Architect, Lead Developer and Chief Technology Officer. Pete is currently living the beach life in Biloxi, MS with his wife and dog, enjoying the freedom provided by cloud based technologies. Pete is available for Project Management, Custom Design, Development, Training, and Speaking assignments. For more information please visit www.thenextage.com or follow his blog at www.thenextage.com/wordpress.
Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:49
Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:54


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:54


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:55


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:55


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:55


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:56


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:56


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:56


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:56


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:57


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:57


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:57


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:58


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 00:58


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:06


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:06


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:06


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:07


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:07


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:07


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:08


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:08


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:09


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:09


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:09


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:10


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:11


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:11


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:12


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 01:56
WAS

WebDev administrator Server: Characteristics of current connections -> http://help.windev.com/en-US/…
WebDev administrator Server: Sites installed -> http://help.windev.com/en-US/…
WebDev administrator Server: General configuration -> http://help.windev.com/en-US/…
WebDev administrator Server: Setups/Accounts -> http://help.windev.com/en-US/…
WebDev administrator Server: Advanced configuration -> http://help.windev.com/en-US/…
WebDev administrator Server: Viewing the logs -> http://help.windev.com/en-US/…
Membre enregistré
4 595 messages
Posté le 26 août 2015 - 02:29
Passo a Passo do Processo de Deploy no Webdev



Membre enregistré
4 595 messages
Posté le 26 août 2015 - 02:30


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 02:30


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 02:31


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 02:31


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 02:32


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 02:32


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 02:33


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 15:41


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 15:44


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 15:45


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 15:45


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 15:46


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 15:46


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 15:47


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 15:47


Membre enregistré
4 595 messages
Posté le 26 août 2015 - 15:49
WAS - Webdev Aplication Server - PcSoft Version 20 é um aplicativo middleware que e instalado no Servidor Web junto com o IIS ou Apache. Roda no Ambiente Windows e Linux. Como as páginas e webservices feitos no Webdev são arquivos compilados o WAS permite que sejam rápidos e altamente SEGUROS, evitando estar legível as regras de negocio e acesso ao banco de dados que estão ligados.
Membre enregistré
4 595 messages
Posté le 26 août 2015 - 16:43
Prezados,

Aqui esta o video de 1h fazendo todos os passos no SERVER WEB e no WORKSTATION.



Bons estudos!...

:merci:
Membre enregistré
4 595 messages
Posté le 26 août 2015 - 17:09
Obs.:

Pastas que devem existir no WAS e no IIS e no InetPub do IIS liberadas para o usuario Administrador e para o Usuário do IIS (IIS_IUSRS):

sites
data
ftp_webdev
webservices
Membre enregistré
4 595 messages
Posté le 26 août 2015 - 18:37
Outras observações:

"AS CONFIGURAÇÕES DO FTP JAMAIS DEVE SER COM LOGIN ANONIMO!!!!!!"

É uma falha grave de segurança.

Usem o "Ftp Mozilla (https://filezilla-project.org/)" utilitario freeware para fazer tentativas de acesso e verificar se esta seguro o seu servidor.

Muita atenção nessa hora... tenha certeza que só voce com suas megas senhas tenham acesso ao WAS e ao FTP...

Aconcelho ler livros sobre infraestrutura do Windows Server e do Linux para ter total dominio sobre esse assunto básico.

:merci:
Membre enregistré
4 595 messages
Posté le 26 août 2015 - 22:03
Ultima Observação:





Deve instalar o Driver Nativo ou ODBC no Servidor onde tem o WAS....

http://screencast.com/t/vtaO7L91

Que a força esteja contigo e sucesso no uso agora esta garantido detalhadamente.

[ ]´s

Adriano Boller
Representante Oficial
PcSoft no Brasil
adrianoboller@gmail.com
(41) 9949 1800
Membre enregistré
4 595 messages
Posté le 26 août 2015 - 23:34
Prezados,

Achei prudente fazer o video no formato mp4 caso alguem não tenha conseguido assistir.

Segue abaixo o Video de como Instalando o Driver Nativo no Servidor:



Um detalhe importe que também deve ser observado é o uso da porta 80, 8080 ou 8081 e 8082 devem estar apenas para o IIS, sendo um dos motivos de erro de comunicacao do WAS por conflitar com a porta do Skype, mude no aplicativo Skype em opções para ele usar outra porta.

[ ]´s

Adriano Boller
Membre enregistré
44 messages
Posté le 27 août 2015 - 21:54
O Melhor mesmo é usar o APACHE com WAS!
Leva pelo menos 10 minutos para configurar o APACHE no "modo HARD".

[ ]'s

--
Analista de Sistemas Jr
Assessor de Comunicação
Fotografo nas horas Vagas
Pai da Alícia e Marido da Andréa <3
Membre enregistré
4 595 messages
Posté le 28 août 2015 - 16:19
O aplicativo WAS é o que gerencia o site e o webservice feito com Windev ou Webdev
pois eles sao compilados, nao sao abertos via "bloco de notas/notepad" os fontes
pois estão em linguagem de maquina, baixo nível.

Assim o site e o webservice abre muito mais rapido do que se fosse interpretado e depois exibido.

Vantagem:

+ alta segurança
+ regras de negocio protegidas
+ conexao com o banco ficam totalmente seguro devido essa camada criada que nao é conhecida pela maioria dos invares, vao achar algo diferente rodando, mas nao serao capazer de ir além.
+ impossivel acessar a base por nao dar nenhum pista para o invasor do servidor web, unica coisa podera tirar o site do ar se teacesso total ao servidor.

Desvantagem:
- precisa ter o Was rodando 100% do tempo
Membre enregistré
4 595 messages
Posté le 02 septembre 2015 - 18:48
Conteudo correlacionado:

http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/546-webdev-webservice-funcoes-internas-para-auxilizar-criacao-xml/read.awp

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Posté le 15 septembre 2015 - 20:28
Funcionou muito bem.
Parabéns Adriano.
Membre enregistré
4 595 messages
Posté le 18 septembre 2015 - 02:34
WAS Troubleshoot DEPLOY

Caso esteja dando esse erro no botão: TEST THE PARAMETERS





ESTÁ LIGADO O SEU FIREWALL

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
4 595 messages
Posté le 19 septembre 2015 - 16:48
WAS Troubleshoot DEPLOY

Caso esteja dando esse erro no botão: TEST THE PARAMETERS





1 - Motivo o Firewall não possui as regras bem definidas, desabilite temporariamente e teste o Deploy novamente.





2 - Desative o Firewall









3 - Faça o Deploy novamente e deve dar certo





4 - Configure o seu firewall para ter as regras necessárias para liberar o ip e porta confiaveis.





--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
4 595 messages
Posté le 19 septembre 2015 - 17:05
Mais um Troubleshoot do WAS e do IIS

Quando vc usa o codigo para gerar relatorios XLS / CSV / PDF no Webdev vode deve usar o seguinte código:

//Excel

Lineprint is string

DataInicial is string = Replace(EDT_Data_Inicial,"-","")

DataFinal is string = Replace(EDT_Data_Final,"-","")

IF EDT_HoraIncial <> "" AND EDT_HoraIncial <> ""

IF DateDifference(DataInicial,DataFinal) < 0 OR DateDifference(DataInicial,DataFinal) > 31 AND EDT_HoraIncial <> "" AND EDT_HoraIncial <> ""

Info("Intervalo de Datas Inválido ou as horas não foram preenchidas")

RETURN

ELSE IF EDT_Data_Inicial <> "" AND EDT_Data_Final <> "" AND EDT_HoraIncial <> "" AND EDT_HoraFinal <> ""

GloCabecalho = "DATA DE EMISSAO: " + DateToString(DateSys(),"DD/MM/YYYY")

IF EDT_AT <> "" AND EDT_MinutoInicial <> "" AND EDT_MinutoFinal <> ""
GloFiltro = "FILTRO Data Inicial: "+ EDT_Data_Inicial + " Hora Inicial: "+ EDT_HoraIncial + " Data Final: "+ EDT_Data_Final + " Hora Final: " + EDT_HoraFinal + " AT: " + EDT_AT + " Minuto Menor < : " + EDT_MinutoInicial + " Minuto Maior > : " + EDT_MinutoFinal
ELSE IF EDT_AT = "" AND EDT_MinutoInicial <> "" AND EDT_MinutoFinal <> ""
GloFiltro = "FILTRO Data Inicial: "+ EDT_Data_Inicial + " Hora Inicial: "+ EDT_HoraIncial + " Data Final: "+ EDT_Data_Final + " Hora Final: " + EDT_HoraFinal + " Minuto Menor < : " + EDT_MinutoInicial + " Minuto Maior > : " + EDT_MinutoFinal
ELSE IF EDT_AT = "" AND EDT_MinutoInicial = "" AND EDT_MinutoFinal = ""
GloFiltro = "FILTRO Data Inicial: "+ EDT_Data_Inicial + " Hora Inicial: "+ EDT_HoraIncial + " Data Final: "+ EDT_Data_Final + " Hora Final: " + EDT_HoraFinal
END


Lineprint = GloCabecalho
Lineprint += "" +Charact(13)+Charact(10)
Lineprint += GloFiltro
Lineprint += "" +Charact(13)+Charact(10)
Lineprint += "AT;Autorizatario;Minuto;DiaHoraMinuto"+Charact(13)+Charact(10)


SQLExecutar is string= [
Relatorio_X
'@dataincial!@'
,'@horainicial@'
,'@datafinal@'
,'@horafinal@'
]

SQLExecutar = ReplaceNull(SQLExecutar,"@dataincial!@",EDT_Data_Inicial)
SQLExecutar = ReplaceNull(SQLExecutar,"@horainicial@",EDT_HoraIncial)
SQLExecutar = ReplaceNull(SQLExecutar,"@datafinal@",EDT_Data_Final)
SQLExecutar = ReplaceNull(SQLExecutar,"@horafinal@",EDT_HoraFinal)

dsQyrRetorno is Data Source

ok is boolean = HExecuteSQLQuery(dsQyrRetorno,ConnNativa,hQueryWithoutCorrection, SQLExecutar)

IF ok = True THEN

FOR EACH dsQyrRetorno

Lineprint += dsQyrRetorno.Numero + ";" + dsQyrRetorno.Nome + ";" + dsQyrRetorno.Minutos +Charact(13)+Charact(10)

END

END

//Impressao
sFileName is string = WS_ReturnGenerationDir() + "TaxiOnlineUrbs.csv"
fSaveBuffer(sFileName,Lineprint)
iDestination(iGenericXLS,sFileName)
FileDisplay(sFileName,"application/unknown","TaxiOnlineUrbs.csv")
fDelete(sFileName)

END

END





Esse código final é que gera o relatorio no diretorio do servidor:

//Impressao
sFileName is string = WS_ReturnGenerationDir() + "TaxiOnlineUrbs.csv"
fSaveBuffer(sFileName,Lineprint)
iDestination(iGenericXLS,sFileName)
FileDisplay(sFileName,"application/unknown","TaxiOnlineUrbs.csv")
fDelete(sFileName)





Para isso uso essa funcao aqui que verifica se o diretorio no servidor existe:

Procedure WS_ReturnGenerationDir()

// Local variables
sGenDir is string

//Servidor
sGenDir = fDataDir()+ "\gen\"
IF fDirectoryExist(sGenDir) = False THEN
fMakeDir(sGenDir)
END
sGenDir = sGenDir + gnConvenioAdministrador +"_"+ gnSeqAutorzAdministrador +"\"
IF fDirectoryExist(sGenDir) = False THEN
fMakeDir(sGenDir)
END

RESULT sGenDir



Mas se não tiver com diretiva de leitura e gravação no IIS o relatorio da o seguinte erro:





É necessário dar as credenciais de administrador e de segurança para o usuário do IIS:





--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
4 595 messages
Posté le 19 septembre 2015 - 17:17
Se estiver tudo certo voce tem que obter a tela de VALIDED, não conseguindo é um problema de infraestrutura, recomendo darem uma olhada nos livros de MCSE da Microsoft onde com certeza voces terão todos os detalhes que devem ser tomados com a administração de servidores windows, segue abaixo alguns links de apoio:

https://technet.microsoft.com/en-us/library/dd450371.aspx

https://technet.microsoft.com/pt-br/library/cc753734.aspx

https://www.microsoft.com/web/platform/server.aspx

https://www.microsoft.com/learning/pt-br/windows-server-training.aspx

Julgo que tendo essas noções básicas não tenha nenhum problema em configurar o seu webservice ou seu site com Webdev.

Forte abraço a todos e bons estudos PcSoft.

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
4 595 messages
Posté le 19 septembre 2015 - 17:25




--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
4 595 messages
Posté le 23 septembre 2015 - 01:43
Hi,

Une autre raison deerro avec était utilise le port 80 par Skype qui le rend difficile à installer, vous devez modifier les paramètres de Skype pour lui d'utiliser un autre port.

Another reason deerro with WAS is using port 80 by Skype that makes it difficult to setup, you must change the Skype settings for him to use another port.

Outro motivo deerro com o WAS é o uso da porta 80 pelo Skype isso acaba dificultando a configuração, deve alterar nas configurações do Skype para ele usar outra porta.





Détecte qu'il ya toute application utilisant le même port de WAS, par exemple Skype, il la plupart du temps le conflit avec le port 80 et a été (WebDev Aplication Server)

Detects that there is any application using the same port of WAS, eg skype it most of the time the conflict with the port 80 and WAS (Webdev Aplication Server)

Detectar que existe algum aplicativo usando a mesma porta do WAS, por exemplo o skype ele na maioria das vezes da conflito com a porta 80 e o WAS (Webdev Aplication Server)

:merci:

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
4 595 messages
Posté le 23 septembre 2015 - 01:47
Ola Prezados,

É realmente o Was é algo bem complexo mas uma vez configurado certinho, funciona que nem um relógio.

Outra técnica para testar o FTP do IIS estar funcionando é instalar o Filezilla Server e o Client para saber se o FTP esta ok

https://filezilla-project.org/download.php…

https://filezilla-project.org/download.php…

Julgo que com esse post qualquer pessoa consiga fazer a configuração de um WAS em seu servidor web para os seus sites, SQLConnectWs e seus Webservices (WSDLs).

Sucesso em seus projetos.

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
123 messages
Posté le 23 septembre 2015 - 13:39
adrianoboller escreveu:
Ola Prezados,

É realmente o Was é algo bem complexo mas uma vez configurado certinho, funciona que nem um relógio.

Outra técnica para testar o FTP do IIS estar funcionando é instalar o Filezilla Server e o Client para saber se o FTP esta ok

https://filezilla-project.org/download.php…

https://filezilla-project.org/download.php…

Julgo que com esse post qualquer pessoa consiga fazer a configuração de um WAS em seu servidor web para os seus sites, SQLConnectWs e seus Webservices (WSDLs).

Sucesso em seus projetos.

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________


Eu utilizo o Filezilla Server, muito bom nada que reclamar...Nunca falha
Membre enregistré
4 595 messages
Posté le 23 septembre 2015 - 15:02
Aulas do Professor Neri Correlacionadas
==================================================================

aula 5988 webdev - configurando IIS servidor web da Microsoft

aula 5989 webdev - configurando IIS startando servidor

aula 6036 webdev - server failed porta 80 netstat Erro IIS processo em uso 0x80070020

aula 6240 windev mobile - configurando IIS servidor web da Microsoft para depois criar webservice

aula 6241 windev mobile - startando servidor IIS e instalando webdev para gerar os webservices

aula 6242 windev mobile - abrindo webdev testando servidor IIS e abrindo projeto criar WEBSERVICE

aula 6262 windev mobile - configuracao do IIS

:merci:

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
4 595 messages
Posté le 23 septembre 2015 - 16:32
Configuração do Reserved - Enviado por Willian Fernando

Linhas Adicionadas ao HTTP.CONF para o Reserved Vr 20 , funcionado aqui pra mim
Estas linhas devem estar no final do arquivo
Lembrando que si você desinstalar o Reserved estas linhas não são apagadas, eu vou la y borro elas manualmente, para reinstalar de novo em caso de testes y esas coisas...

-------------------------------------------------------------------------------
Alias /RAWP/res/ "C:/Program Files/PC SOFT/Reserved Server 20/AWP/res/"
<Directory "C:/Program Files/PC SOFT/Reserved Server 20/AWP/res/">
Require ALL granted
AddType text/cache-manifest .manifest
AddType Image/svg+xml .svg
AddType video/webm .webm
AddType text/vtt .vtt
</Directory>
ScriptAlias /RAWP/ "C:/Program Files/PC SOFT/Reserved Server 20/AWP/"
<Directory "C:/Program Files/PC SOFT/Reserved Server 20/AWP/">
Require ALL granted
</Directory>
AddType application/WebDev20-rawp .rawp
Action application/WebDev20-rawp /RAWP/RAwp.exe VIRTUAL
AddType application/WebDev20-rawws .rawws
Action application/WebDev20-rawws /RAWP/RAwp.exe VIRTUAL
<Files WDSOAPDB>
ForceType application/WebDev20-rawp
Require ALL granted
Allow from ALL
</Files>
<Files SRVRPL>
ForceType application/WebDev20-rawp
Require ALL granted
Allow from ALL
</Files>
Alias /WDSOAPDB_WEB/ "C:/Program Files/PC SOFT/Reserved Server 20/WDSoapDB/WDSOAPDB_WEB/"
<Directory "C:/Program Files/PC SOFT/Reserved Server 20/WDSoapDB/WDSOAPDB_WEB/">
Require ALL granted
AddType text/cache-manifest .manifest
AddType Image/svg+xml .svg
AddType video/webm .webm
AddType text/vtt .vtt
</Directory>


--------------------------------------------------------------------------------
Atenção atento aos caminhos essa maquina minha e de 32 Bits, SI instalar em 64 o caminho muda
Ficaria algo como C:/Program Files (x86)/PC SOFT/Reserved Server 20
eu tive problemas tamben com o WEBDEV y o WAS que vem com ele , ao rodar um Site DO Tipo PHP não queria executar , dai olhei o HTTP.CONF y la estava o problema...
ajustei a linha y funciono de primeira


--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
4 595 messages
Posté le 29 septembre 2015 - 21:06
WAS - Verificando as portas de conexao

Como verificar as portas TCP que estão sendo usadas no computador?
Existe um comando rápido e fácil que pode ser usado em computadores
com o Windows XP: é o "netstat".

Para utilizá-lo basta ir No prompt DO DOS e digiar:

c:\netstat -abonp "TCP"

Uma lista com as conexões ativas irá aparecer informando os IPs,
portas e os aplicativos que estão utilizando as portas. No meu
computador o resultado DO netstat apareceu assim:

Active Connections

Proto LOCAL Address Foreign Address State PID

TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1456

c:\windows\system32\WS2_32.dll

C:\WINDOWS\system32\RPCRT4.dll

c:\windows\system32\rpcss.dll

C:\WINDOWS\system32\svchost.exe

-- unknown component(s) --

[svchost.exe]

TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4

[System]

TCP 127.0.0.1:1029 0.0.0.0:0 LISTENING 792

[alg.exe]

TCP 127.0.0.1:4664 0.0.0.0:0 LISTENING 2300

[GoogleDesktop.exe]

TCP 127.0.0.1:12025 0.0.0.0:0 LISTENING 320

[ashMaiSv.exe]

TCP 127.0.0.1:12080 0.0.0.0:0 LISTENING 356

Na linha que inicia com "TCP" a informação que aparece em seguida é o endereço IP DO seu computador. Depois dos dois pontos aparece o número da porta. Se a conexão for "LISTENING" quer dizer que o aplicativo No seu computador está aguardando que outro computador conecte com ele. Se a conexão for ESTABLISHED quer dizer que a conexão já está feita e aparece na frente DO IP DO seu computador o outro IP que está conectado a porta.

Se caso você queira ver o nome DO computador ao invés DO endereço IP,
basta mudar o comando para:

c:\netstat -abop "TCP"


Se você quiser criar um arquivo texto com o resultado DO comando
netstat, basta acrescentar No fim DO comando ">> arquivo.txt" :

c:\netstat -abonp "TCP" > arquivo.txt

fonte:http://www.flaviosouza.net/2009/03/como-verificar-as-portas-tcp-que-estao.html


MS-Dos

netstat -an |find /i "listening" //Portas na escuta
netstat -an |find /i "established" //Portas com ligação estabelecida
netstat -an |find /i "3389" //Definir porta específica “3389”


É extremamente importante para o administrador saber que portas estão sendo utilizadas e por quais programas no seu Sistema Operacional. Utilize o comando Netstat para verificar se não exite nenhuma conexão estranha no seu micro. Portas abertas por conexões desconhecidas geralmente indicam algum tipo de invasão na máquina.

*netstat a servidor = retorna a lista de nomes registrados No WINS, pelo computador chamado servidor

*netstat a = Exibe todas as portas de conexões e de escuta

*netstat –e: Esta opção exibe estatísticas sobre a interface Ethernet DO computador

*netstat –n: Exibe endereços e números de porta em forma numérica

*netstat –s: Exibe estatística por protocolo

*netstat -s p ip 10: Mostra conexões para o protocolo especificado por protocolo, que pode ser tcp OU udp a cada 10 segundos.

* netstat –r: Exibe o conteúdo da tabela de roteamento DO computador


--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
4 595 messages
Posté le 01 octobre 2015 - 15:44
WAS = WEBDEV APPLICATION SERVER

É usado para páginas dinâmicas desenvolvidas com o webdev, webservices desenvolvidos com webdev, páginas AWP desenvolvidas com webdev
é uma espécie de administrador que executa as páginas gerados com webdev as páginas webdev apesar de gerar html apresentam um modulo compilado que é gerenciado pelo WAS

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
4 595 messages
Posté le 02 octobre 2015 - 23:58
Novo troubleshoot do WAS

Caso ao testar no WAS ao clicar no botão [DIAGNOSTICO] apresentar problemas como esses dois abaixo:









Solução:





Ficando assim:





Ou seja, são apenas detalhes, nada de mais... simples assim...

Forte abraço a todos,

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
4 595 messages
Posté le 24 octobre 2015 - 00:23
Prezados

Segue aqui as telas do WAS na versão Linux:

































Caso tenha interesse em adquirir a licença do WAS (Webdev Aplication Server) entrem em contato comigo pelo:

skype adrianoboller,
email: adrianoboller@gmail.com
ou pelo celular: +55 41 9949 1800,

Como representante consigo fazer um bom preço e em 12x pelo pagseguro e 1 ano de suporte e treinamento free sobre o produto via skype.

Caso queira contratar um treinamento in Company eu me desloco ate a sua cidade, entre em contato e agendamos a consultoria.

Forte abraço a todos.

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
4 595 messages
Posté le 26 octobre 2015 - 13:39
Prezados,

Uma vez instalado o WAS, deve ser instalado o Banco de dados e o driver compativel com o WAS para subir as suas aplicações.

O ftp.pcsoft.fr possui todas as versões ali disponiveis dos instaladores de todos os seus produtos.

http://www.thenextage.com/wordpress/setting-up-hyperfilesql-and-scm-on-a-linux-server/

http://doc.pcsoft.fr/fr-FR/?3044370

Comando de instalação no Linux do Driver ODBC

apt-get install unixodbc


--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
4 595 messages
Posté le 04 novembre 2015 - 15:20
Prezados

Segue uma lista de verificações que devem ser feitas pra um banco de dados rodar junto com o WAS em um site ou webservice:

a) espaço em disco
b) firewall com a porta liberada
c) memoria livre
d) processador livre
e) não ter um antivírus bloqueando a sua execução, identificado como trust
f) temperatura ok do servidor
g) processos não estar utilizando as mesmas portas socket tcp/ip
h) log cheio
i) diretivas de acesso ao disco RW+ (ler e escrever)
j) falta de comandos e pacotes que estejam mal instalados ou versões erradas que não mantem o serviço no ar
l) verificar se outros servicos
m) analisar os logs do S.O e do W.A.S.

:merci:

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
4 595 messages
Posté le 05 novembre 2015 - 16:56
Prezados,

Configurações do Firewall:









WAS Portas Sites e Webservices (PcSoft = wd200admin.exe)

Portas usadas: 80, 8081, 8082, 8083, 8084, 63132, 63185

Programa para ajudar a monitorar as portas do seu servidor:

http://www.wellingtonagapto.org/2015/06/tcpview-software-de-analise-de-portas-em-uso-pelo-windows.html

https://technet.microsoft.com/en-us/sysinternals/bb897437.aspx…

Comandos Ms-Dos:
c:\>NETSTAT -O
c:\>NETSTAT -NA

OBS.: AS PORTAS DO BANCO DE DADOS TABEM DEVEM ESTAR CORRETAMENTE CONFIGURADAS NO FIREWALL

:merci:

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
4 595 messages
Posté le 05 novembre 2015 - 17:02
Prezados,

Como deve ficar o seu Firewall:





--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
4 595 messages
Posté le 07 mars 2016 - 20:10
Exemplo do email da PCSOFT:


Hi ADRIANO,

You have ordered one or several version 20 of WebDev Application Server for Windows.
Thank you very much for your order.

The pre-release of version 20 is now available. You can download it from the following link:
http://www.pcsoft.fr/st/telec/index.html

Here is the information you need to download version 20 of "WebDev Application Server for Windows".

http://www.windev.com/ts/download/20/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Login : xxxxxx
Password : xxxxxxxxxxxxxx

Please note the serial number(s) that have been assigned to you and that will be requested during setup:

SERIAL xxxxxxxxxxxxxxxxxxxxxxxxxxxxx ssssssssssssss

PC SOFT Customer Services


ATENÇÃO:

TAMANHO APROXIMADO: 678 Megabytes


SE DER ESSE ERRO:

Unable to detect webdep 20
the update will be stoped
Check whether the product is correctly instaled





É O PACOTE ERRADO, VERIFIQUE COM O REPRESENTANTE MAIORES INFORMAÇÕES.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.blogspot.com.br/
Membre enregistré
4 595 messages
Posté le 03 mai 2016 - 21:52
//Sqlconnectws01

ConnectionNum is int

ConnectionNum = SQLConnectWS("http://MyServer/WDSOAPDB_WEB/", ...
"MS Access 97 Database", "", "", "", "ODBC")
IF ConnectionNum <> 0 THEN
// The connection was successful
...
ELSE
// The connection failed: displaying an error message
SQLInfo()
Error("The connection to the data source " + SourceName + ...
" failed." + CR + "Error code: " + ...
SQL.Error + CR + SQL.MesError)
END
// In any case (connection OK or not)
SQLDisconnect()


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 04 mai 2016 - 22:01
Prezados

Segue aqui vídeo sobre como configurar o FTP no IIS



:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 06 mai 2016 - 04:28
Prezados

Estou criando esse post para tratar o time out de páginas no Webdev.





























DEFINIÇÃO DO TEMPO DE TIMEOUT DO IIS

https://technet.microsoft.com/pt-br/library/cc771956%28v=ws.10%29.aspx

Para configurar o tempo limite da sessão

Você pode realizar esse procedimento usando a interface do usuário (IU), executando comandos do Appcmd.exe em uma janela da linha de comando, editando diretamente os arquivos de configuração ou gravando scripts de WMI.
Interface de usuário
Para usar a IU

Abra o Gerenciador do IIS e navegue até o nível que deseja gerenciar. Para obter informações sobre como abrir o Gerenciador do IIS, consulte Abrir o gerenciador do IIS (IIS 7). Para obter informações sobre como navegar para locais da interface do usuário, consulte Navegação no Gerenciador do IIS (IIS 7).

Em Exibição de Recursos, clique duas vezes em ASP.

Na página ASP , em Serviços, expanda Propriedades da Sessão.

No campo Tempo limite, insira um valor de tempo limite no formato hh:mm:ss. Por exemplo, insira 00:15:00 para 15 minutos.

No painel Ações, clique em Aplicar.

Linha de comando

Para especificar o período de tempo padrão durante o qual o objeto de uma sessão é mantido após a última solicitação associada ao objeto, use a seguinte sintaxe:

appcmd set config /section:asp /timeout: timeSpan

A variável timeSpan representa o período máximo de tempo (hh:mm:ss) que um objeto da sessão é mantido após a última solicitação associada ao objeto. O valor padrão é 00:20:00.

Para obter mais informações sobre Appcmd.exe, consulte Appcmd.exe (IIS 7).
Configuração

O procedimento neste tópico afeta os seguintes elementos de configuração:

<sessionState>

<sessionPageState>

Para obter mais informações sobre a configuração do IIS 7, consulte IIS 7.0: esquema de configurações do IIS (a página pode estar em inglês) no MSDN.
WMI

Use as seguintes classes, métodos ou propriedades do WMI para realizar o procedimento:

Propriedade SessionStateSection.Timeout

Para obter mais informações sobre WMI e IIS, consulte WMI (Instrumentação de Gerenciamento do Windows) no IIS 7. Para obter mais informações sobre as classes, os métodos ou as propriedades associados a este procedimento, consulte a Referência do provedor WMI do IIS (a página pode estar em inglês) no site do MSDN.

Como alterar o valor de tempo limite padrão para um site no IIS em um servidor Windows 2008 R2


Como corrigir Tempo limite expirou. O tempo limite esgotou antes da conclusão da operação


Em resumo

Deve configurar nas telas do webdev, no was e no IIS ou apache o tempo de time out

TimeOut parâmetro Apache



https://httpd.apache.org/docs/2.4/mod/mod_reqtimeout.html

https://www.devside.net/wamp-server/apache-and-php-limits-and-timeouts

http://users.cis.fiu.edu/~downeyt/cgs4854/timeout

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 11 mai 2016 - 16:12
Para configurar o NO-IP



--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 11 mai 2016 - 16:17
Configurar Roteador e Portas para o seu site:











--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 11 mai 2016 - 16:20
Membre enregistré
4 595 messages
Posté le 20 mai 2016 - 19:34
Prezados,

Vou passar aqui como configurar a porta padrão do IIS ou como fazer para que nao abra o html inicial do IIS e sim a pasta do seu site.

Criando um Redirect no lugar do defaul.htm ou index.html da raiz do IIS:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="1;url=http://177.124.60.220:8081/RTSite/CONNECT_MODETEST/sCAAAAAAAABzZFpXcnFBTEhFAAA">
<script type="text/javascript">
window.location.href = "http://177.124.60.220:8081/RTSite/CONNECT_MODETEST/sCAAAAAAAABzZFpXcnFBTEhFAAA"
</script>
<title>Radio Taxi Faixa Vermelha</title>
</head>
<body>
<!-- Caso não abra o site click no link abaixo: -->
<br>
<a href='http://177.124.60.220:8081/RTSite/CONNECT_MODETEST/sCAAAAAAAABzZFpXcnFBTEhFAAA'>Clique Aqui</a>
</body>
</html>
********************************************
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="1;url=http://localhost/RTSite/">
<script type="text/javascript">
window.location.href = "http://localhost/RTSite/"
</script>
<title>Radio Taxi Faixa Vermelha</title>
</head>
<body>
<!-- Caso não abra o site click no link abaixo: -->
<br>
<a href='http://localhost/RTSite/'>Clique Aqui</a>
</body>
</html>


Alterando porta default no IIS



Configurar um site padrão
Quando o IIS é instalado, ele é pré-configurado para servir como um site padrão. No entanto, você pode querer alterar algumas das configurações. Para alterar as configurações básicas do site e para emular as etapas necessários para configurar o Apache pela primeira vez usando o arquivo de configuração:

Faça logon no computador do servidor Web como administrador.
Clique em Iniciar, aponte para Configurações e clique em Painel de Controle.
Clique duas vezes em Ferramentas Administrativas e depois em Gerenciador de Serviços da Internet.
Clique com o botão direito do mouse no site que você deseja configurar no painel esquerdo e depois clique em Propriedades.
Clique na guia Site.
Digite uma descrição para o site na caixa Descrição.
Digite o endereço IP a ser usado para o site ou deixe a configuração padrão Todos (Não Atribuídos).
Modificar a porta de protocolo de controle de transmissão (TCP) conforme apropriado.
Clique na guia Diretório Base.
Para usar uma pasta no computador local, clique em Um diretório neste computador e, em seguida, clique em Procurar para localizar a pasta que você deseja usar.
Para usar uma pasta que foi compartilhada a partir de outro computador na rede, clique em Um compartilhamento localizado em outro computador e digite o caminho da rede ou clique em Procurar para selecionar a pasta compartilhada.
Clique em Leitura para conceder acesso de leitura à pasta (necessário).
Clique em OK para aceitar as propriedades do site.

Criar um novo site
Para criar um novo site no Apache, você deve configurar um host virtual e definir as configurações individuais desse host. Se estiver usando o IIS, você poderá criar um novo site convertendo os seguintes termos para seus equivalentes no IIS:
Termo do Apache Termo do IIS
Raiz do documento Diretório base do IIS Web Site
NomeDoServidor Cabeçalho de Host do IIS
Ouvir Endereço IP do IIS e a porta TCP
Para criar um novo site no IIS, execute estas etapas:

Faça logon no computador do servidor Web como administrador.
Clique em Iniciar, aponte para Configurações e clique em Painel de Controle.
Clique duas vezes em Ferramentas Administrativas e depois em Gerenciador de Serviços da Internet.
Clique em Ação, aponte para Novo e clique em Site.
Após o início do Assistente para Criação de Site, clique em Avançar.
Digite uma descrição para o site.

Essa descrição é usada internamente para identificar o site da Web só no Gerenciador de serviços de Internet.
Selecione o endereço IP a ser usado para o site.

Se você selecionar Todos (Não Atribuídos), o site ficará acessível em todas as interfaces e endereços IP configurados.
Digite o número da porta TCP para publicar o site no.
Digite o nome de cabeçalho de Host (o nome real que é usado para acessar este site).
Clique em Próximo.
Digite o caminho para a pasta que contém os documentos do site ou clique em Procurar para selecionar a pasta e clique em Avançar.
Selecione as permissões de acesso para o site e clique em Avançar.
Clique em Concluir.


Como: Criar e configurar diretórios virtual no IIS 7.0
.NET Framework 4

Usando o gerenciador do IIS, você pode criar um diretório virtual para um aplicativo da Web ASP.NET que está hospedado no IIS 7.0. Um diretório virtual aparece para navegadores cliente como se ele está no diretório raiz do servidor Web, mesmo que ele possa fisicamente residir em outro lugar. Essa abordagem permite que você publique conteúdo da Web que não esteja localizado sob a pasta raiz do servidor Web, como o conteúdo que está localizado em um computador remoto. Também é uma maneira conveniente de criar um site para o trabalho de desenvolvimento local Web porque ele não exige um site exclusivo para cada diretório virtual.

Este tópico explica como criar um diretório virtual e configurá-lo para executar páginas ASP.NET em versões de que tem o IIS instalado e no Windows servidor 2008. Para obter informações sobre como configurar um diretório virtual no IIS 5.0, 5.1 e IIS 6.0, consulte Como: Criar e configurar diretórios virtual no IIS 5.0 e 6.0.

Você deve criar um diretório virtual como parte de um site do IIS existente. Este pode ser o Web site padrão que é criado quando o IIS é instalado, ou um site que você criou. Para obter detalhes adicionais sobre como instalar e configurar o IIS e sobre como criar um site da Web, consulte a Ajuda do IIS ou a documentação do produto IIS online sobre o Microsoft TechNet Site da Web.
Criando o Diretório Virtual

Siga um dos procedimentos no tópico Como: Abra o Gerenciador do IIS para abrir Gerenciador do IIS. Você pode, então, criar um diretório virtual.
Para criar um diretório virtual usando O Gerenciador do IIS

No Gerenciador do IIS, expanda o computador local e a pasta Sites, e localize o site da Web que você deseja adicionar em um diretório virtual.Use as seguintes etapas:

Para , clique com o botão direito do mouse no site ou na pasta onde você deseja criar o diretório virtual e em seguida, clique em Add Virtual Directory.

Para Windows Server 2008, clique com o botão direito do mouse no site ou na pasta onde você deseja criar o diretório virtual, clique em Manage Web Site e em seguida, clique em Add Virtual Directory.

Na caixa de diálogo Add Virtual Directory, especifique as seguintes informações:

Alias ​​. Digite um nome para o diretório virtual. Escolha um nome curto que seja fácil de digitar, pois o usuário digita esse nome para acessar o site.

Caminho físico. Digite ou navegue até o diretório físico que contém o diretório virtual. Você pode selecionar uma pasta existente ou criar uma nova para conter o conteúdo para o diretório virtual.

Para fornecer credenciais para conectar-se a um caminho UNC, clique no botão Connect as.

Clique em OK.

Para obter mais informações, consulte Gerenciando .
Configurando o diretório virtual

Se o ASP.NET estiver ativado, quando você cria um diretório virtual, ele já está configurado para executar páginas ASP.NET. Para obter mais informações sobre como habilitar a funcionalidade ASP.NET no IIS 7.0, consulte Executando Aplicativos da Web no Windows Vista com o IIS 7.0 e Visual Studio ou Executando aplicativos da Web no Windows Server 2008 com o IIS 7.0 e Visual Studio.As próximas tarefas de configuração que você pode desejar executar são configurar a segurança e autenticação para o diretório virtual.
Configurar a segurança de uma diretório virtual para uma conta existente

No Gerenciador do IIS, selecione o diretório virtual que você deseja configurar e em seguida, clique em Edit Permissions no painel de Actions.

O diretório virtual da caixa de diálogo Properties é exibida.

Clique na guia Security.

Clique em Edit.

A caixa de diálogo Permissions é exibida.

Selecione uma conta existente na lista Group or user names.

Marque as caixas de seleção de permissões apropriadas da lista Permissions para um determinado grupo ou usuário, conforme necessário para sua segurança de diretório virtual.

Clique em Apply para aplicar as alterações.

Clique OK para fechar a caixa de diálogo Permissions.

Clique Apply para aplicar as alterações na caixa de diálogo Properties.

Clique em OK.

Configurar a segurança de uma diretório virtual para uma conta existente

No Gerenciador do IIS, selecione o diretório virtual que você deseja configurar e em seguida, clique em Edit Permissions no painel de Actions.

O diretório virtual da caixa de diálogo Properties é exibida.

Clique na guia Security.

Clique em Edit.

A caixa de diálogo Permissions é exibida.

Clique em Add Para adicionar uma conta.

A caixa de diálogo Select Users, Computers, or Groups é exibida.

Adicionar um usuário, computador ou grupo, conforme necessário para segurança de seu diretório virtual.

Clique para fechar o Selecionar Usuários, Computadores ou Grupos OK caixa de diálogo.

Marque as caixas de seleção de permissões apropriadas da lista Permissions para um novo usuário, computador, ou grupo, conforme necessário para sua segurança de diretório virtual.

Clique em Apply para aplicar as alterações.

Clique OK para fechar a caixa de diálogo Permissions.

Clique Apply para aplicar as alterações na caixa de diálogo Properties.

Clique em OK.

Configurar a autenticação para um diretório virtual

No Gerenciador do IIS, selecione o diretório virtual que você deseja configurar.

Em Features View, clique duas vezes em Authentication.

Selecione o tipo de autenticação para configurar e no painel de Actions certifique-se de que Enable é selecionado para ativar o tipo de autenticação.

Se o tipo de autenticação estiver ativado, o painel Actions permite que você desative ou edite a configuração de autenticação.

No painel Actions, clique em Edit ou Advanced Settings para configurar propriedades adicionais para o tipo de autenticação selecionada.

As ações disponíveis no painel Actions variam dependendo o tipo de autenticação selecionada.Por exemplo, se o módulo Anonymous Authentication estiver instalado e está ativado, você pode clique em Edit para editar propriedades adicionais de autenticação anônima.Se o módulo Window Authentication é instalado e está ativado, você poderá clicar em Advanced Settings para editar as propriedades de autenticação Windows.

Para obter mais informações sobre a configuração de autenticação, consulte Configuração de autenticação no IIS 7.0.Para obter uma lista de outras tarefas administrativas comuns, consulte Adminis comuns.

Bons estudos

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 20 mai 2016 - 20:42
Como alterar a porta TCP para serviços do IIS


IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 149605

É altamente recomendável que todos os usuários atualizar para Serviços de Informações da Internet da Microsoft (IIS) versão 7.0 em execução no Microsoft Windows Server 2008. O IIS 7.0 aumenta significativamente a segurança da infra-estrutura da Web. Para obter mais informações sobre tópicos relacionados a segurança do IIS, visite o seguinte site da Microsoft:
http://www.microsoft.com/technet/security/prodtech/IIS.mspx
Para obter mais informações sobre o IIS 7.0, visite o seguinte site da Microsoft:
http://www.IIS.NET/default.aspx…

SUMÁRIO
É possível alterar a porta de serviços que o Internet Information Server (IIS) escutará. Isso pode ser útil quando você tenta executar vários servidores da web no mesmo computador.

Mais informações

Importante: Essa seção, método ou tarefa contém etapas que informam sobre como modificar o registro. No entanto, sérios problemas poderão ocorrer se você modificar o registro incorretamente. Portanto, certifique-se de seguir estes passos cuidadosamente. Para obter mais proteção, faça backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro caso ocorra um problema. Para obter mais informações sobre como fazer backup e restaurar o registro, clique no número do artigo a seguir para visualizá-lo na Base de Conhecimento Microsoft:
322756 Como fazer o backup e restaurar o registro no Windows
Versões do Microsoft Internet Information Server 1.0 para o 2.0

Iniciar Regedt32.exe e localize a seguinte subchave do registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceProvider\ServiceType\W3SVC

Localize o valor de porta TCP e clique duas vezes nele.

A caixa de diálogo Editor DWORD deve aparecer com o valor padrão (Hex 0x50; 80 Decimal) listado. Altere o valor decimal para o número da porta que deseja que o serviço de publicação da World Wide Web para ouvir.

Observação: Você também pode seguir as etapas 2 e 3 para alterar os seguintes serviços:

MSFTPSVC: Serviço de Publicação de FTP

GOPHERSVC: Gopher Serviço de Publicação

Saia do Regedt32.exe.

Pare e reinicie os serviços do IIS usando o Gerenciador de Serviços de Internet.

Microsoft Internet Information Server versão 3.0

Abrir o Gerenciador de Serviços de Internet.
Clique duas vezes no computador correspondente ao serviço da Web.
Na guia Serviço, altere o campo Porta TCP com o número de porta desejada.
Clique em OK.
Usando o Gerenciador de Serviço de Internet, pare e reinicie os serviços do IIS.

Versões do Serviços de Informações da Internet da Microsoft 4.0 para 6.0

Abra o Gerenciador de Serviços de Internet ou o Gerenciador do Internet Information Services (IIS).
Se necessário, expanda o servidor Web que você deseja e, em seguida, expanda Sites da Web.
Clique com botão direito no site que você deseja alterar.
Clique em Propriedades.
Clique na guia Site da Web .
Alterar o número da porta TCP na caixa de edição de Porta TCP (ou clique em Avançado para múltiplas configurações de Portas).
Clique em OK para salvar as alterações.

Serviços de Informações da Internet da Microsoft 7.0

Abra o Gerenciador do Internet Information Services (IIS).
Selecione o site que você deseja configurar.
No painel de Ações , clique em Ligações.
Clique em Adicionar para adicionar uma nova ligação do site ou clique em Editar para alterar uma associação existente.
Clique em OK para aplicar as alterações.

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 21 mai 2016 - 00:55
Prezados,

Devido solicitações estou colocando alguns detalhes adicionais sobre o IIS

Com o IIS 7.0 o ASP.NET trabalha integrado respondendo diretamente pelas chamadas, possibilitando a interceptação das requisições trabalhando de maneira integrada. O IIS agora conta também com vários caminhos para que possamos efetuar sua configuração, seu novo console e até usando código .net Agora temos:

IIS Manager
Scripting
WMI
Microsoft.Web.Administration (.NET)
AppCmd.exe

Para Iniciarmos a instalação do IIS 7.0 vamos abrir o “Server Manager” (Figura 1)





Botão Direito em “Roles” e “Add Role” (Figura 2)





- Add Role Wizard (Figura 3) esta tela simplesmente clique em “Next”





- Select Server Roles (Figura 4) Vamos Selecionar o Check Box “Web Server (IIS)” e clicar em “Next”





- Web Server (IIS) (Figura 5) Tela de introdução do IIS, leia-a e clique em “Next”





- Select Roles Services (Figura 6) Vamos selecionar agora quais serviços vamos instalar em nosso IIS, lembrando que após a instalação é possivel repetir os passos efetuados até aqui e adicionar ou remover algum recurso se necessário. No Fim da página vamos marcar o Check Box “FTP Server” Mais acima na categoria “Management Tools” Marquei também o “Management Service” Para administração remota do IIS através de outro computador usando o “IIS Manager” Voltando ao início, na categoria “Common HTTP Features” Marquei o “HTTP Redirection” Não é necessário marcar todos, para esse artigo apenas o “FTP Server” é o suficiente, estou marcando para eventuais testes futuros, fique a vontade de marcar o que você achar interessante para testar ou o que você realmente vai utilizar. Clique em “Next” ao finalizar as seleções. * Ao selecionar qualquer recurso da lista é exibido uma explicação ao lado direito superior da tela.





- Confirm Installations Selections (Figura 7) Um resumo é exibido. Clique em “Install” para iniciar a instalação.





- Installation Progress (Figura 8) Aguarde o fim da instalação.





- Installation Results (Figura 9) Resultado da instalação com sucesso. Clique em “Close”





Fácil, Rápido e sem maiores segredos! Agora abriremos o Console do Internet Information Services (IIS) Manager. Também é possivel através do console “Server Manager” expandindo o “Roles”. Neste caso usaremos o console próprio do IIS. Clique em “Start”, “Administrative Tools” e “Internet Information Services (IIS) Manager” (Figura 10)





- Internet Information Services (IIS) Manager Essa é a cara do IIS 7.0 instalado no Windows Server 2008 R2 (Figura 11) e podemos ver também o “Default Web Site” (Web Site Padrão) criado automaticamente pelo IIS.





Para confirmar sua funcionalidade você pode abrir o seu navegador e acessar o endereço “http://localhost” você deverá ver o site como na imagem (Figura 12) Como adicionar o seu Site veremos mais adiante. Vamos agora ao FTP.





Criando Site FTP

O FTP Não é como o Site no IIS que já está funcionando logo após a instalação, o FTP temos que adicioná-lo e configura-lo

- Add FTP Site Para adicionar um Site FTP Clicamos com o Direito sobre o nome do servidor listado no lado esquerdo no IIS Manager e selecionamos “Add FTP Site” (Figura 13)





- Site Information (Figura 14) Entre com um nome para o FTP e o local aonde será armazenado os arquivos do FTP, recomendado um disco ou partição exclusiva para o FTP visando também o que será armazenado. (Espaço em Disco). A pasta deve estar compartilhada com suas devidas permissões de compartilhamento, permissões NTFS será efetuada pelo próprio assistente do FTP mas à frente. Clique em “Next”





- Binding and SSL Settings (Figura 15) Agora configuramos onde o FTP deve responder as chamadas e a criptografia SSL.

IP Address: Aqui temos “All Unassigned” e o IP do nosso servidor * All Unassigned O All Unassigned usa endereços IP’s que são atribuídos a um computador, mas não atribuído a um site específico. Possibilita o acesso ao FTP através de todos os IP’s que estiverem disponíveis no servidor desde que estes não estejam sendo usados por outros sites ou sites FTP (caso você tenha mais de um site no seu servidor) eu costumo definir por IP como na imagem.

Enable Virtual Host Names: Deixem desmarcado.

Start FTP Site Automatically: Deixem marcado.

SSL: Aqui também é opcional, mas por segurança eu estou ativando a criptografia SSL para o FTP. Clique em “Next”





- Authentication and Authorization Information (Figura 16) Autenticação e Autorização para o Acesso ao Site FTP. Não recomendo habilitar e permitir acesso anônimo, mas se o seu FTP for um FTP público não tem jeito! Em Authorization temos uma caixa suspensa “Allow access to:” onde podemos definir grupos ou usuários específicos, anônimos ou não definir uma autorização. Eu permiti acesso a todos os usuários e com permissão de Leitura “Read” ou seja, clientes não enviam arquivo para este FTP só conseguem ler o conteúdo.

Clique em “Finish” e pronto!





Note que foi criado agora o Site FTP ao lado esquerdo. (Figura 17)





Para acessa-lo abra o Windows Explorer e Digite e automaticamente será exibido a tela para Login e Senha (Figura 18)





Agora basta você configurar as permissões NTFS na pasta e recomendo criar Grupos e/ou Usuários no AD DS para acesso ao FTP principalmente se o FTP for acessado por clientes via web. Não entrarei em detalhes de como publica-lo na internet pois isso envolve configurações de firewall, roteador, links entre outras configurações que variam de acordo com a estrutura da sua rede… Para configurar as Permissões NTFS através do Console ” IIS Manager” clique com o botão direito sobre o nome do Site FTP e selecione “Edit Permissions…” Ao abrir as propriedades da pasta, vá até a aba “Security“ e adicione novos usuários e edite suas permissões. (Figura 19) NUNCA dê permissões mais do que “Read & Execute” para usuários de uso Cliente em Site FTP, caso contrário o estrago pode ser grande!





FTP Funcionando!





Agora vamos colocar nosso Web Site no “Ar”

No Console do “IIS Manager” Clicando com o direito sobre “Default Web Site” e selecionando “Manage Web Site” e “Advanced Settings” ou pelo painel “Manage Web Site” o lado direito (Figura 21)





Agora vamos verificar a configuração da pasta padrão do Web Site, ela pode ser alterada mas não há necessidade. (Figura 22)





Agora que sabemos aonde fica a pasta padrão podemos colocar o conteúdo do nosso site dentro dela ou mudar o caminho padrão até ao local onde esta o conteúdo ( A ordem dos fatores não altera o resultado. rsrs!)

Vamos definir no Web Site a primeira página do site (Index.html ou Default.html, .asp .aspx entre outras)

Clique em “Default Web Site” com o botão esquerdo mesmo e no centro da tela (Features View) temos o “Default Document” (Figura 23) clicando 2x sobre o item veremos as páginas já existentes, podemos adicionar uma nova página clicando em “Add” que se encontra ao lado direito em “Actions” e inserindo o nome da página mais a sua extensão (asp.php.htm.html e outras) (Figura 24)





e





Para uma melhor agilidade ao carregar a primeira página, selecione-a e mova com as setas para cima, deixando a sua página inicial em 1º lugar.





Agora basta acessar através do Internet Explorer, FireFox ou o seu navegador favorito através do IP ou localhost, mas sempre digitando o (http:) antes.

Para adicionar um site ao IIS clique com o botão do lado deito do mouse sobre o nome do computador e selecione a opção adicionar site.

Preencha com os dados do seu site. Senão tiver muito conhecimento sobre portas e outras configurações deixe o padrão ou conforme imagem abaixo. Aconselho criar uma pasta dentro do diretório C:\inetpub\wwwroot\Nome-Site





O nome do seu site que você configurou irá aparecer abaixo do site pré configurado “Default Web Site”.
Seu site esta configurado.





Pare o serviço do site Default Web Site e inicie o que você criou.

E para deixar a URL Amigável:

http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/748-como-deixar-enderecos-dos-sites-webservices-feitos-com/read.awp

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 21 mai 2016 - 01:03
Membre enregistré
4 595 messages
Posté le 04 juin 2016 - 15:04
Links complementares



http://forum.pcsoft.fr/fr-FR/pcsoft.us.webdev/1514-creating-internal-functions-for-your-webservice-criando-funcoes/read.awp

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 26 juillet 2016 - 00:20
REQUISITOS BÁSICOS PARA UM WEBSERVICE SOAP OU REST:

- Instalar e Configurar o IIS ou Apache

- Instalar e configurar o WAS reserved ou a versão FULL

- Configurar o Firewall

- Configurar o antivírus para aceitar os programas e drivers em execução como seguros

- Verificar as portas se nao estao sendo usadas por outros programas

- Instalar o banco de dados exemplo hfsql ou mysql... (mssqlserver, oracle, db2, as/400 sao drivers nativos pagos)

- Instalar o gerenciador de banco de dados SGDB, Center Hfsql ou phpmyadmin, workbank...

- Instalar o Driver Nativo, exemplo MySql da pcsoft

- Instalar o Noip ou contratar um IP Fixo ou um host server Windows ou Linux com acesso as configurações e execução de comandos e deixar o WAS rodando

- roteador da internet, criar o alias da porta :8081 para quando usar o endereço dns do seu noip ou do seu ip fixo seja roteado para o seu servidor no ip da classe C tipo 192.168.1.100 e o IIS ou Apache abra a sua página ou o seu webservice SOAP ou REST de qualquer lugar do planeta.

- NUNCA INSTALE O WAS FULL OU RESERVED NA SUA MAQUINA DE DESENVOLVIMENTO

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 26 juillet 2016 - 00:31
Membre enregistré
4 595 messages
Posté le 24 août 2016 - 02:48
ROTEIRO DE INSTALAÇÃO:

1 - Contratar um servidor cloud ou dedicado, exemplo Alphaservers

Contato:
(67) 3386-5949 Vivo
(67) 9 9949-7100 Vivo Whats
(67) 9 9309-4946 Claro
alphaservers@alphaservers.com.br
Skype: ald.informatica
http://www.alphaservers.com.br/

2 - Instalar o MS IIS (internet information server)

3 - Criar as definições de página e ftp no MS IIS

4 - Desativar o firewall e antivirus local e no no servidor cloud ou dedicado

5 - Subir o pacote do WAS para o servidor, instalar e configurar ele

6 - Instalar o banco no servidor e por o driver de conexão (DLL) no diretório C:\Windows\System32\ para o funcionamento do banco com o site e o webservice

7 - Alterar a porta do Skype de 80 para outro numero livre

8 - Configurar o Deploy do site ou do webservice apontando para o ip do servidor contratado e fazer o upoad usando o primeiro metodo

9 - Testar se esta se funcionou o site e o webservice

10 - Configurar o Firewall e o Antivirus no Workstation de trabalho e no Servidor cloud ou dedicado.

11 - Configurar no registro.br o CNAME para ter um nome curto o site e webservice feito com o webdev

12 - Testar

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 24 août 2016 - 03:01
Membre enregistré
4 595 messages
Posté le 24 août 2016 - 02:50
Tutorial PCSOFT Install WAS e Deploy Site no servidor dedicado da Alphaservers





:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 25 août 2016 - 01:34
Tutorial PCSOFT Install WAS e Deploy Webservice no servidor dedicado da Alphaservers



:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
535 messages
Membre enregistré
4 595 messages
Posté le 29 août 2016 - 13:53
Muito obrigado Amarildo por ajudar nessa postagem aqui no fórum oficial.

Parabéns!

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 03 septembre 2016 - 18:04
Importante:









Não é recomendado os servidores que só oferecem o ambiente cpanel e acesso indireto.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 03 septembre 2016 - 18:11
Membre enregistré
4 595 messages
Posté le 20 septembre 2016 - 02:17
Prezados,

##############
IMPORTANTE
##############

Para concluir esse curso, as DLLs dos Drivers dos Bancos de dados devem ser inseridos no diretório do .exe do WAS (Webdev Aplication Server).

Assim o sistema vai funcionar PERFEITAMENTE.

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 25 novembre 2016 - 21:28
Prezados,

Caso ocorra esse erro no deploy do WAS:


Erro do WAS:
Failure saving the application in the account file.
Check whether the permissions on the files are correct (or contact the server administrator and transmit him this message).


Unable to load an SQL Server access DLL.

WL call:
Process of 'Click of BTN_ENTRAR (server)' (PAGE_LOGIN.PageLayout1.BTN_ENTRAR), line 5, thread 0
'HReadSeekFirst' function, syntax 0

What happened?
Unable to load an SQL Server access DLL.

Error code: 73000
Level: fatal error
WD55 error code: 3000

Dump of the error of 'wd210hf.dll' module (21.0.124.5).
Identifier of detailed information (.err): 72352
Debugging information:
Fonction (7,12)
Additional Information:
EIT_LOGICALTABLENAME : <Usuarios>
EIT_PILEWL :
Click of BTN_ENTRAR (server) (PAGE_LOGIN.PageLayout1.BTN_ENTRAR), line 5
EIT_DATEHEURE : 24/11/2016 18:57:21
EIT_TYPE_WDFILE : <65538>
EIT_IDCODE : <851984>

----- Sub-error #1 -----

What happened?
Unable to load <C:\WebDev21\wd210sqs.dll> access DLL.

Error code: 72333
Level: fatal error

System error code: 126
System error message:
Não foi possível encontrar o módulo especificado.

Dump of the error of 'wd210hf.dll' module (21.0.124.5).
Identifier of detailed information (.err): 72333
Debugging information:
IEWDHF=74.1
Module=<WDHF>
Version=<21.0.124.5>


----- Sub-error #2 -----

What happened?
Unable to load <C:\WebDev21\wd210sqlserver.dll> access DLL.

Error code: 72333
Level: fatal error

System error code: 126
System error message:
Não foi possível encontrar o módulo especificado.

Dump of the error of 'wd210hf.dll' module (21.0.124.5).
Identifier of detailed information (.err): 72333
Debugging information:
IEWDHF=74.1
Module=<WDHF>
Version=<21.0.124.5>


----- Sub-error #3 -----

What happened?
Unable to load <C:\WebDev21\wd210sqlserver2.dll> access DLL.

Error code: 72333
Level: fatal error

System error code: 126
System error message:
Não foi possível encontrar o módulo especificado.

Dump of the error of 'wd210hf.dll' module (21.0.124.5).
Identifier of detailed information (.err): 72333
Debugging information:
IEWDHF=74.1
Module=<WDHF>
Version=<21.0.124.5>

(25, ERR_MSG_BOX)


Só pra registrar, o passo a passo de instalação do WAS:

1 - Instalacao do IIS
2 - Install do WAS
3 - Instalacao do Driver Nativo MS SQL Server / HFSQL ...
4 - criacao das contas de FTP
5 - criacao do diretorio virtual e diretivas de gravacao
6 - definicao de acesso para o usuario do IIS
7 - configuracao da porta do firewall

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 26 novembre 2016 - 23:50
Prezados,

Se não instalar o driver no servidor o WAS não funciona:

Free Native Access
MySQL April 20, 2016
http://www.windev.com/ts/download/common-modules-21/mysql.htm

PostgreSQL April 20, 2016
http://www.windev.com/ts/download/common-modules-21/postgresql.htm

MariaDB April 20, 2016
http://www.windev.com/ts/download/common-modules-21/mariadb.htm

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 29 novembre 2016 - 04:52
Prezados,

Erro do WAS:
Failure saving the application in the account file.
Check whether the permissions on the files are correct (or contact the server administrator and transmit him this message).





Esse erro é devido não ter instalado o driver nativo do banco de dados no Servidor junto do WAS.

Instale o driver nativo que resolve esse problema.

Segue links dos drivers Free da versão 21

HFSQL Client/Server
For Windows and Linux
WX210PACKUSHFSQLCS067c.exe
http://www.windev.com/ts/download/21/download.php…
241.3 MB


OLEDB for HFSQL
For Windows
WX210PACKUSOLEDB067f.exe
http://www.windev.com/ts/download/21/download.php…
57 MB


ODBC on HFSQL
For Windows
WX210PACKUSODBC067f.exe
http://www.windev.com/ts/download/21/download.php…
50.3 MB


Free Native Access Database
MySQL April 20, 2016
http://www.windev.com/ts/download/common-modules-21/mysql.htm

PostgreSQL April 20, 2016
http://www.windev.com/ts/download/common-modules-21/postgresql.htm

MariaDB April 20, 2016
http://www.windev.com/ts/download/common-modules-21/mariadb.htm

Caso tenham algum outro erro diferente dos citados favor encaminhar para mim
para complementar essa postagem pelo e-mail: adrianoboller@gmail.com

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 29 novembre 2016 - 05:08
Membre enregistré
4 595 messages
Posté le 06 décembre 2016 - 18:17
Para resolver esse erro: 25 / 92 do WAS:

Unable to load <C:\WebDev21\wd210sqlserver2.dll> access DLL.





Só pra registrar o driver nativo ms sql server, o passo a passo de instalação do WAS:

1 - Instalacao do IIS
2 - Install do WAS
3 - Instalacao do Driver Nativo MS SQL Server / HFSQL ...
4 - criacao das contas de FTP
5 - criacao do diretorio virtual e diretivas de gravacao
6 - definicao de acesso para o usuario do IIS
7 - configuracao da porta do firewall

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 06 décembre 2016 - 18:18
Membre enregistré
4 595 messages
Posté le 17 janvier 2017 - 11:45
Prezados,

Outro detalhe importante que faz com que não funcione é o roteamento das portas do roteador e do ip externo.

Se possível use sempre DNS (Domain Name Server), ou seja, use:

http://www.nomedaempresa.com.br/WEBDEVSITE_WEB/


Procure evitar o uso de ip no webservice, windev mobile e no site, pois caso mude de provedor o IP será outro, voce não consegue re-utilizar o ip antigo, será outro IP, portanto, NUNCA USE O IP.

Registre o dominio do site e use o nome do dominio.com.br pelo site

http://www.registro.br


custo de R$ 30,00 ao ano.

Tendo maiores informações estarei colocando aqui nessa postagem.

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 06 février 2017 - 16:04
Manual WAS - Webdev Aplication Server 21/22 for Linux:

http://pt.slideshare.net/adrianoboller/deployment-was-linux-2122

Precisando adquirir, só entrar em contato pelo skype: adrianoboller

ou pelo Whatsapp 41 99949 1800

Bons estudos!

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 06 février 2017 - 16:05
Membre enregistré
4 595 messages
Posté le 23 février 2017 - 02:51
Publicando vários sites no mesmo IIS, sob o mesmo domínio
##################################################################


Publicar vários sites no mesmo servidor, respondendo sob o mesmo domínio, pode ser um problema se você começar a pensar em IP’s, portas, nome de domínio, registro no DNS (A, CNAME, MX), tudo pode acabar ficando confuso a ponto de você perder o dia com algo muito simples.

Assumindo que seus sites já estejam configurados em um servidor web IIS (Internet Information Services), vamos às configurações.


Primeiro, segue um exemplo de dois sites que já estejam rodando no servidor web IIS.

http://hostimage.windev.io/images/i01_083958f879f4ad618ca320b973ee0abb.jpg

Configurações do “SITE1”:

No endereço de IP, você deve colocar o IP público do seu servidor web IIS, onde roda o “SITE1”, no nosso exemplo, este IP será “200.0.0.1”. A porta continuará sendo a porta padrão, ou seja, porta 80.

No “Nome do Host” você deve preencher conforme a seguinte sintaxe: nomedesejado.seudominio.com.br. Ou seja, se o nome do site você estipulou como “SITE1” e o seu domínio é “seudominio.com.br”, você deve configurar o nome do host da seguinte maneira: site1.seudominio.com.br.

Segue o exemplo de como ficará a configuração de acordo com o nosso exemplo:

http://hostimage.windev.io/images/i02_7c46c52b782ed940b6bbfe19fdee069e.png

Feitas as configurações, faremos da mesma forma as configurações do “SITE2”, que ficarão como no exemplo abaixo: 

http://hostimage.windev.io/images/i03_de676079aecf18991f00735ead090ec9.png

Segue agora como ficará a configuração dos seus sites no servidor web IIS:

http://hostimage.windev.io/images/i04_86964f24c92956866b17847266b10e59.png

Estão encerradas as configurações que devem ser realizadas no seu servidor web IIS. Agora é necessário configurar a “Zona de DNS” do seu servidor de domínio.

Ao entrar na página de configurações do seu servidor de domínio, entre nas configurações do domínio desejado, pois você pode ser quantos domínios quiser, no nosso exemplo, eu entraria nas configurações do domínio “seudominio.com.br”.

Acesse as configuraçoes da Zona de DNS e crie um registro “A”, que nada mais é que um “Host Address”, ou seja, um nome amigável para o endereço de IP externo do seu servidor de web IIS, apontando para o site desejado. O parâmetro “Entrada” será preenchido como “site1”, que é o nome que desejo para acessar o primeiro site, e o parâmetro “Conteúdo” será o endereço de IP do servidor web IIS onde roda o “SITE1”.

Por fim, crie um novo registro “A”, e passe o parâmetro “Entrada” como “site2” e o parâmetro “Conteúdo” com o endereço de IP do servidor web IIS onde roda o “SITE2”. Salve as configurações, aplicando-as.


http://hostimage.windev.io/images/i05_f8c84de446fcae60ee0e482d063331eb.png

Publicando vários sites no mesmo IIS, sob o mesmo domínio

Publicar vários sites no mesmo servidor, respondendo sob o mesmo domínio, pode ser um problema se você começar a pensar em IP’s, portas, nome de domínio, registro no DNS (A, CNAME, MX), tudo pode acabar ficando confuso a ponto de você perder o dia com algo muito simples.
Assumindo que seus sites já estejam configurados em um servidor web IIS (Internet Information Services), vamos às configurações.

Primeiro, segue um exemplo de dois sites que já estejam rodando no servidor web IIS.

Configurações do “SITE1”:

No endereço de IP, você deve colocar o IP público do seu servidor web IIS, onde roda o “SITE1”, no nosso exemplo, este IP será “200.0.0.1”. A porta continuará sendo a porta padrão, ou seja, porta 80.

No “Nome do Host” você deve preencher conforme a seguinte sintaxe: nomedesejado.seudominio.com.br. Ou seja, se o nome do site você estipulou como “SITE1” e o seu domínio é “seudominio.com.br”, você deve configurar o nome do host da seguinte maneira: site1.seudominio.com.br.

Segue o exemplo de como ficará a configuração de acordo com o nosso exemplo:

Feitas as configurações, faremos da mesma forma as configurações do “SITE2”, que ficarão como no exemplo abaixo: 

Segue agora como ficará a configuração dos seus sites no servidor web IIS:

Estão encerradas as configurações que devem ser realizadas no seu servidor web IIS. Agora é necessário configurar a “Zona de DNS” do seu servidor de domínio.

Ao entrar na página de configurações do seu servidor de domínio, entre nas configurações do domínio desejado, pois você pode ser quantos domínios quiser, no nosso exemplo, eu entraria nas configurações do domínio “seudominio.com.br”.

Acesse as configuraçoes da Zona de DNS e crie um registro “A”, que nada mais é que um “Host Address”, ou seja, um nome amigável para o endereço de IP externo do seu servidor de web IIS, apontando para o site desejado. O parâmetro “Entrada” será preenchido como “site1”, que é o nome que desejo para acessar o primeiro site, e o parâmetro “Conteúdo” será o endereço de IP do servidor web IIS onde roda o “SITE1”.

Por fim, crie um novo registro “A”, e passe o parâmetro “Entrada” como “site2” e o parâmetro “Conteúdo” com o endereço de IP do servidor web IIS onde roda o “SITE2”. Salve as configurações, aplicando-as.

https://www.youtube.com/watch?v=vmlExABARVY

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 23 février 2017 - 03:01
Membre enregistré
4 595 messages
Posté le 23 février 2017 - 03:01
http://hostimage.windev.io/images/i01_083958f879f4ad618ca320b973ee0abb.jpg


http://hostimage.windev.io/images/i02_7c46c52b782ed940b6bbfe19fdee069e.png


http://hostimage.windev.io/images/i03_de676079aecf18991f00735ead090ec9.png


http://hostimage.windev.io/images/i04_86964f24c92956866b17847266b10e59.png


http://hostimage.windev.io/images/i05_f8c84de446fcae60ee0e482d063331eb.png

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 09 mars 2017 - 21:29
Administrador WebDev remoto: Erro de Gerenciamento de Mensagens

http://help.windev.com/?306

Mensagens de erro do Application Server

Por padrão, quando ocorre um erro em um site WebDev dinâmica, uma mensagem de erro aparece no navegador do usuário. Esta mensagem é composto por:

um identificador : por exemplo ERR_MAX_CONNECTION (14)

uma mensagem : Por exemplo: A conexão foi recusada porque o número máximo de conexões permitidas (300) foi alcançado. Tente novamente mais tarde.

uma página HTML , especificamente, onde a mensagem de erro é exibida.
A ferramenta de administração remota pode simplesmente personalizar os vários erros que podem ser exibidos em seu site. A personalização da página de erro de exibição deve ser realizada durante o desenvolvimento do site de Webdev dinâmico.
Personalizar mensagens de erro a partir de um website Webdev
Para personalizar mensagens de erro de um site Webdev
Clique no link "Sites" na barra de menu.
Selecione o site para configurar.
Clique no botão .
Selecione o ID do erro: a actual redacção para este erro.


Nota : Para obter uma explicação das várias mensagens de erro padrão, consulte Mensagens de erro .
Você pode:
Personalize a mensagem de erro sugerido:
Basta digitar a nova mensagem na caixa de texto e clique no botão "Aplicar".
Nota : Em algumas mensagens, tags específicas são usados. Estas tags são substituídos de acordo com o contexto, nome, número, ...
É aconselhável manter essas tags.
Por exemplo: A tag {RECONNECT} permite a reconexão automática para o aplicativo ao exibir a mensagem de erro. É aconselhável manter esta tag ao personalizar a mensagem.
Restaurar a mensagem de erro padrão:
A mensagem de erro personalizada será substituída pela mensagem de erro fornecido por padrão. Basta clicar no botão "Default".
A mudança é imediatamente eficaz.
Nota : As mesmas manipulações podem ser realizadas para serviços Web (item de menu "serviços Web").
Lista de mensagens de erro
Aqui estão as diferentes mensagens de erro pode ser exibida por um site WebDev dinâmico.
1 ERR_MISSING_PAGE O pedido está incompleto. Ele não contém informações sobre o contexto em questão.
4, ERR_BUTTON_EXPECTED A consulta está incorreta. Falta-lhe a ação a ser executada.
5, ERR_NO_CURRENT_PAGE O site não está funcionando porque ele não retornou página.
6, ERR_PARSER erro de sintaxe no arquivo |
7, ERR_BAD_ACTION A acção específica <actionName> é desconhecida.
8, ERR_NO_PAGE Você pediu para trabalhar no <PAGE_NAME> .Ele não existe ou está escondido ...
9, ERR_BAD_PARAMETER O <command_name> não tem as configurações corretas.
10, ERR_BAD_FILE O arquivo <nome_do_arquivo> não pode ser aberto (e, portanto, devolvido)
11, ERR_WDADMIN_EXIST O Webdev programa de administração já foi lançado. Não pode ser apenas uma máquina.
12, ERR_NO_WDADMIN não foi lançado o programa de administração Webdev.
13, ERR_OUT_OF_MEMORY Não há memória suficiente para executar a operação. |
14, ERR_MAX_CONNECTION A conexão é recusada porque o número máximo de conexões permitidas (<NB_CONNECTION>) foi atingido. Tente novamente mais tarde.
15 ERR_BAD_COMMANDLINE A linha de comando passado para o motor está incorreta ...
17 ERR_BAD_CONFIG A configuração do site <nome do aplicativo> é inválida para <value_name> valor
18 ERR_BAD_WEBDEV_CONFIG configuração geral pobres de Webdev. A tecla <keyname> está ausente ou incorreto.
19 ERR_BAD_CONTEXT O contexto em que este pedido se refere (<context-name>) não existe (ou mais). Você pode ter sido desconectado.
20, ERR_BAD_URL O url <NOM_URL> é inválido.
22 ERR_TIMEOUT_REQUEST O pedido não respondeu dentro do prazo (<Período> segundos). "
23 ERR_SESSION_CLOSED Você foi desconectado.
24, ERR_CLOSED_PAGE A petição refere-se ao <PAGE_NAME>, que não existe mais. (O tratamento pode ser fechada).
25, ERR_MSG_BOX Aplicação gerou a seguinte mensagem de erro: ...
26, ERR_BAD_SERIAL_NUMBER O número de série é inválido.
28, ERR_CANNOT_OPEN_FILE O arquivo HTML <FILENAME> não pôde ser aberto.
30, ERR_NO_PROJECT O <nome do projeto> projeto não existe (nem em WWP nem em WDL). Verifique a configuração para o projeto.
32, ERR_NO_APPLICATION O site <nome do aplicativo> é desconhecido: não foi configurado para Webdev.
33, ERR_BAD_DLLEXE O <DLL_NAME> DLL não é compatível com esta versão do Webdev.
34, ERR_NO_DLLEXE Não foi possível carregar a DLL <DLL_NAME>.
35, ERR_CANNOT_LAUNCH O motor não podia correr pela seguinte razão: ...
37, ERR_NO_TABLE O comando <command_name> funciona apenas com tabelas e <fieldname> não é uma tabela.
38, ERR_ALREADYCONNECTED A ligação é negado porque você já estiver conectado a esta aplicação. ...
39, ERR_NOTACTIVATED O módulo não foi ativado. É necessário reinstalar
40, ERR_NOTAVAILABLE Este comando está disponível apenas no modo de desenvolvimento
41, ERR_NOTADEVVERSION Esta versão não pode ser utilizado no desenvolvimento
42, ERR_LOADMOREDLL Utilisareur o componente não pode ser carregado
43, ERR_TIMEOUTINIT O motor não foi inicializado dentro do limite de tempo.
46, ERR_UPDATING_SERVER O servidor está sendo atualizado. Tente novamente mais tarde.
47, ERR_TEST_WWP O modo de teste não pode funcionar sem o projeto e suas páginas
48, ERR_SYNCHRONIZATION A ação solicitada não poderia ser feito: a página não foi em fase.
49, ERR_BAD_APPLICATION O local não é permitido para ser usado com esta versão do Webdev
50, ERR_NO_END_TAG erro de sintaxe no arquivo <nome_do_arquivo>. A marca de fim para o <NOM_BALISE_HTML> está em falta
51, ERR_LAUNCH_FAILED lançamento website erro
52, ERR_CANNOT_CREATE_TMP Não é possível criar arquivo temporário ... Teste cancelada.
53, ERR_CANNOT_RUN_EXPLORER Não é possível iniciar o site associado com .htm, Arquivo:% s, Código:% d
54, ERR_BAD_CONTEXT_INVALID O contexto em que este pedido se refere (% d) é desconhecida. . <BR> O servidor pode ter sido reiniciado desde o seu último pedido.
55, ERR_BAD_CONTEXT_INTERNAL Erro interno: contexto inválido (% d). (Status =% d)
56, ERR_DISCONNECTED_BY_ADMIN Você foi desconectado manualmente pelo administrador de Webdev. {RECONNECT}
57, ERR_DISCONNECTED_TIMEOUT Você foi desconectado porque o seu último pedido é muito antiga (o tempo limite =% d seg) {} RECONNECT
58, ERR_DISCONNECTED_RELOG O contexto em que este pedido se refere não é mais válido, ele foi substituído por um novo em sua última ligação com o site {RECONNECT}
59, ERR_BAD_CONTEXT_FOUND O contexto em que este pedido se refere (% d) é inválido (a sessão terminou por algum motivo). {RECONNECT}
60, ERR_DISCONNECTED_ERROR Esta sessão terminou devido ao seguinte erro:
61, ERR_DISCONNECTED_EXEC Sessão não existe mais <BR> (você deixou, ou ele termina normalmente ') {} RECONNECT
62, ERR_BAD_VERSION_RQS diálogo inválido número da versão estrutura. <BR> Este problema vem de uma mistura de versões incompatíveis do WD220Session / WD220Awp / WD220Admin. <BR> Para corrigir isso, reinstale Webdev
63, ERR_DISCONNECTED_UPDATE Você foi desconectado porque o site foi atualizado no servidor. {RECONNECT}
64, ERR_FORBIDDEN_UPDATE Webdev está definido para proibir atualização remota.
65, ERR_FORBIDDEN_INSTALL Webdev está definido para proibir a instalação remota.


Mais detalhes:

administrador WebDev remoto: Configurações do Servidor
http://help.windev.com/?105

administrador WebDev remoto: Gerenciando conexões
http://help.windev.com/?508

administrador WebDev remoto: Parâmetros de um Webdev site dinâmico ou um serviço web
http://help.windev.com/?407

administrador WebDev remoto: backup e restaurar um site Webdev
http://help.windev.com/?205

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 04 avril 2017 - 11:53
Prezados,

Segue aqui os Manuais do WAS (Webdev Aplication Server), o motor de páginas e webservice da PCSOFT.

https://www.slideshare.net/secret/4KJWrIl4AeljKL

https://www.slideshare.net/adrianoboller/deployment-was-linux-2122

Quem tiver interesse em adquirir acesso a minha loja virtual: http://www.wxinformatica.com.br

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 16 avril 2017 - 02:20


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 16 avril 2017 - 02:25


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 09 mai 2017 - 13:33
Caso ocorra esse erro:





####################################
Error writing into the registry.
Contact the server administrator.
####################################

O usuário utilizado para fazer o procedimento de upload e deploy do site ou do webservice não tem as diretivas administrativas para fazer mudanças no Registro do Windows.

Sendo o usuário com as diretivas corretas esse erro não vai ocorrer.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 09 mai 2017 - 13:35
Membre enregistré
4 595 messages
Posté le 12 mai 2017 - 13:08
Prezados,

O erro acima também foi devido o anti-virus macfee que bloqueia a gravação do registro do Windows.

Tambem tinhamos no log a seguinte informação:

INFRegistering the site in the administrator
ERRFailure saving the application in the account file.
ERRCheck whether the permissions on the files are correct (or contact the server administrator and transmit him this message).

e não conseguia criar a chave no registro

INFSaving the new version of the site
Creating the registry key:HKEY_LOCAL_MACHINE\Software\PC SOFT\WebDev\21.0\Webservices\WsAspnetMobile
Application Settings
INFYou have requested -1 connections for the site..
INFYou have requested -1 connections per user for the site.
INFYou have requested a session duration limited to 0 seconds.
INFThe time-out for request was set to 300 sec.
ERRError writing into the registry.
ERRContact the server administrator.
Unable to write the value into the registry:HKEY_LOCAL_MACHINE\Software\PC SOFT\WebDev\21.0\Webservices\WsAspnetMobile - TIMEOUT_RQ
Deleting the setup archive: C:\DADOS\FTP\ftp_webdev\WsAspnetMobile.ZIP
Deleting the application backup: C:\DADOS\SITES\WsAspnetMobile.ZIP
Deleting the temporary directory: C:\DADOS\FTP\ftp_webdev\install_temp\WWIAB6A.tmp
Deleting the version information file: C:\DADOS\SITES\WsAspnetMobile\WsAspnetMobile.WINFO
Deleting the signature file: C:\DADOS\SITES\WsAspnetMobile\SIGN

Para resolver:

a) Trocamos de anti-vírus, colocamos o Karperski e cadastramos os .exe do WAS, Webdev como seguros.

b) excluímos da pasta do ftp do servidor todos os arquivos lixo existentes

c) excluímos do WAS o projeto e atualizamos a lista para ter certeza que não estava mais exibido

d) refaz o deploy e tudo funcionou.

OK

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 12 mai 2017 - 13:15
Membre enregistré
3 messages
Posté le 12 mai 2017 - 19:22
não achei como criar um novo topico .

mas minha duvida é a seguinte .

tenho um rpt que estou criando para ler os dados de um xml de NF-e e mostrar o danf na tela .

tenho um bloco de interação que tem a parte do recibo .


{ tentei enviar uma imagem }

mas quando eu uso a opção isubstblock para pegar este bloco e colocar no topo da pagina , acaba que se o relatorio tiver duas paginas ele aparece depois do bloco body cortando os itens.


{imagem 2 }


gostaria de ajuda para resolver ..


OBS: para imprimir os produtos da nota no relatorio eu preciso utilizar o iprintbloc(body) senao nao imprime .
Membre enregistré
4 595 messages
Posté le 12 mai 2017 - 19:53
Prezados,


Failure to save the application in the account file

Check whether the permissions on the server are correct (or contact the server administrator and transmit this message)

---

Salvar o aplicativo no arquivo de conta falha

Verifique se as permissões corretas (ou entre em contato com o administrador do servidor e transmitir-lhe esta mensagem)

===

Diretivas de Usuário erradas no usuario do was ou no usuário de ftp, ajustando conforme informações acima, resolve.

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 12 mai 2017 - 19:56
Ivadeclei ...

Essa postagem devia ser uma nova tem no topo da tela nesse link:

https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/page/1.awp

no botão:

"NOUVEAU SUJET"

OU POR ESSE LINK

https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/write.awp

CLICK NO LINK ACIMA E REFAÇA A SUA PERGUNTA.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 05 juin 2017 - 14:32
Bom dia,

Você só pode usar no mobile sqllite e hfsql classic ou client server comunicação com mysql é via WAS que é um software que instala junto no servidor dai você tem 2 alternativas usar o comando sqlconnectws ou criar um webservice e dai sim lá no servidor instalar o driver do mysql ou outro banco... junto com o was para você poder consumir no windev mobile.

O mobile não se deve nunca se comunicar direto com o banco do servidor.

Não importa qual for, pois se descompilar esta dentro do apk o usuário, senha, banco e ip e dai é só invadir e copiar os dados.

O correto no mobile estar sempre usando webservice, pois fica do lado do servidor esses dados, e não no lado do mobile, dando mais segurança.

Pois é muito arriscado, se um usuário tiver o conhecimento básico de decompilacao vai invadir o teu banco.

Minha recomendação é sempre, sempre usar webservice... outras técnicas é igual deixar a chave no capacho da porta de entrada da sua empresa.

Se deixar a chave para fora, mesmo debaixo do capacho, nada impede do ladrão pegar a chave ok

Não usem conexão direta, eu fiz um vídeo sobre java é um dos últimos que fiz que falo todo esse processo de decompilacao.

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 05 juin 2017 - 14:34
Prezados,

Solução do Erro de DNS Url navegador diferente do action html

https://pt.slideshare.net/adrianoboller/soluo-install-webservice-was-pcsoft

É nos detalhes que estao as respostas...

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 07 juin 2017 - 22:32
INFRA ESTRUTURA





--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 21 août 2017 - 22:13
RESERVED NAO FUNCIONA, COMO RESOLVER?

Erros encontrados por um cliente:

















RESPOSTA

1- Ele ja tinha o WAS (resposta = SIM)

2- Ja tinha a conexão nativa do MSSQL (resposta = SIM)

3- o Reserved já estava instalado quando foi instalado a conexão nativa (resposta = Não) <<< eis aqui o problemão instalar a conexão nativa do MSSQL (até onde eu lembrava) ele registrava para os serviços que estavam em execução nessa maquina fazendo um scan (seja o WAS, WEBDEV, WINDEV, etc), pois bem, como ele instalou o RESERVED depois de instalar a conexão, o reserved ficou fora do registro da conexão, então a unica coisa que faltava é reinstalar a conexão, para que a mesma possa registrar o RESERVED como um dos produtos disponíveis naquela maquina.

REINSTALAR O DRIVER É A SOLUÇÃO

Procedure Ex_SqlConnectWs()

//Esse seria o codigo de conexao no celular para usar o comando SQLConnectWs()
//Que permite acessar uma base remota no celular sem a necessidade de criar um Webservice
//Lembro que dessa forma fica aberto todas as tabelas do seu banco e deve ter uma configuracao precisa de segurança no usuario de conexao
//Ja o Webservice é como fosse um firewall de banco de dados e prestador de serviços estipulado e restritos, poendo totalmente ser
//monitorado com logs de acesso e execuções, podendo ter um maior controle dos dados por quem é usado, podendo ate barrar o acesso pelo
//TOKEN.


//Para conexão é algo parecido com isso:
ok is boolean = False

mServerWS is string = "http://192.168.0.1:89" // <- o mesmo que informou no Reserved
mSource is string = "192.168.0.1" //<-o IP DO banco
mUsuario is string = "nome do usuario" //<-com permissão de acesso remoto ao banco
mSenha is string = "senha" //<-senhaDOusuárioDObanco
mBancoDeDados is string = "nome_do_banco"
mTipo is string = "MySQL"

IF SQLConnectWS(mServerWS,mSource,mUsuario,mSenha,mBancoDeDados,mTipo) = 0 THEN

SQLInfo()

Error("Erro na conexão ao banco de dados","Error code: "+SQL.Error+CR+SQL.MesError)

ELSE

Info("Conectou")

msql is string = "select * from sua_table"
mRunSql is boolean
mRunSql = SQLExec(msql,"ler_table")

ok = False

IF mRunSql = False THEN
//info("Nada a mostrar")
SQLInfo("ler_table")
Info("SQL error: "+SQL.MesError,SQL.Error)
ELSE
//TableDeleteAll(Table_sua_table) //na janela vc cria uma table programada
WHILE SQLFetch("ler_table") = 0
ok = True
//TableAddLine(Table_sua_table ,SQLGetCol("ler_table",2)) // alimenta a table programada com registros
END
END

END

RESULT(ok )


RESPOSTA GENTILMENTE FEITA PELO NOSSO AMIGO

<<<<< Willian Fernando Padilha >>>>>

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 21 août 2017 - 22:17
Membre enregistré
4 595 messages
Posté le 04 décembre 2017 - 23:14
IMPORTANTE

O usuário administrador deve fazer parte member do grupo de acesso ao o MS IIS se não tiver nesse grupo web ele não tem os recursos necessários para usar o ms iis e para dar acesso ao Deploy e ao WAS. Ou seja, se do lado workstation tiver administrador, no lado do servidor deve ter administrador do grupo administrador como member do IIS com características de uso web. E definido os acessos para as pastas do WAS para ele estando verde o status. E caso criei outro usuário deve ter ele definido da mesma forma que o administrador com as mesmas características acima.

Importante ter o driver de acesso ao banco no windos\system32, no diretorio do was e no diretorio do projeto.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 04 décembre 2017 - 23:16
Posté le 18 juin 2018 - 21:46
É importante marcar a opção Básico senão não vai conectar com o FTP:


Membre enregistré
4 595 messages
Posté le 25 juin 2018 - 22:50
MANUAL WAS LINUX
https://blog.wxperts.com/2012/11/21/setting-up-the-webdev-application-server-on-a-linux-cloud-server/

Servidor Linux
1) Criar a instância
2) Checando a configuração do Servidor
Antes de instalar o servidor de aplicativos WebDev para Linux, a configuração do servidor Linux deve ser verificada.
As diferentes etapas para executar essa configuração são as seguintes:
a) Verificando a presença do servidor Apache
b) Procurando pelo arquivo de configuração do Apache
c) Verificar a presença de um servidor FTP
d) Verificando a presença da biblioteca libstdc ++
e) Verificando a presença da biblioteca QT (versão 4.5 ou posterior)
a) Verificando a presença de um servidor da Web
Antes de instalar o servidor de aplicativos WebDev, você deve verificar se um servidor Apache está instalado.
Nota: para executar as seguintes operações, você deve estar conectado como "root".
Trocar a senha do root
sudo passwd
Para acessar como root é só digitar su
O comando a seguir permite que você descubra se o servidor Apache está sendo executado no servidor Linux:
dpkg -l | grep apache2
Se na linha seguinte for listado o pacote do exemplo acima e vier acompanhado de "ii" no início da linha, então o pacote está instalado
Caso contrário será necessário instalar o apache2
apt-get install apache2
b) Procurando pelo arquivo de configuração do Apache
Antes de instalar o servidor de aplicativos WebDev para Linux, você deve descobrir o diretório e o nome da configuração arquivo de configuração do Apache.
Para fazer isso, execute as seguintes linhas de comando:
1. Retorne a lista de programas correspondentes aos serviços utilizados:
netstat --tcp --listen --numeric --program
2. Depois de saber o nome do programa, você pode obter facilmente informações sobre sua configuração. Para fazer isso, use o seguinte linha de comando de linha:
apache2 -V
No meu caso específico com o comando acima pude saber que o arquivo de configuração encontra-se em /etc/apache2/apache2.conf. Teremos que saber este caminho para a instalação do Webdev
c) O servidor FTP permite que você instale facilmente os sites WebDev. Este servidor FTP deve ser instalado no servidor e deve ser capaz de gerenciar trocas seguras (com senha)
Para saber se existe um servidor FTP digite na linha de comando:
netstat --tcp --listen |grep ftp
Se não aparecer nenhuma informação, deve ser instalado um servidor FTP
apt-get install vsftpd
Editar o arquivo /etc/vsftpd.conf (Você pode usar qualquer editor como por exemplo:
nano /etc/vsftpd.conf
descomentar "local_enable=YES"
descomentar "write-enable=YES"
descomentar "local_umask=022"
Reiniciar o FTP
/etc/init.d/vsftpd restart
d) Para verificar a presença da biblioteca libstdc ++, use a seguinte linha de comando
ldconfig -p | grep libstdc++
Se não aparecer nenhuma lista na linha seguinte ao comando, será necessário instalar esta biblioteca
apt-get install libstdc++
e) Para verificar a presença da biblioteca QT (Core e GUI), recomendamos que você use a seguinte linha de comando
qtconfig
Se aparecer que o comando não existe, será necessário também instalar esta biblioteca
apt-get install libqtcore4
apt-get install libqtgui4
Esta última poderá aparecer como já instalada









Esta verificação deve necessariamente ser realizada, mesmo que a configuração tenha sido finalizada corretamente
apachectl configtest
Deverá aparecer Syntax OK
Se ocorrer um erro, execute as seguintes operações.
Edite o arquivo de configuração do Apache.
Use a seguinte linha de comando, por exemplo
nano /etc/apache2/apache2.conf
Encontre a linha a seguir e exclua o caractere # no início da linha
# LoadModule actions_module /usr/lib/apache/1.3/mod_actions.so
Nota: esta linha pode mudar de acordo com a versão do Apache. Esta linha deve ter o seguinte formato
# LoadModule actions_module <path of server modules>/mod_actions.so
Salve o arquivo de configuração e verifique a configuração do servidor Apache mais uma vez
Uma vez que o Apache esteja configurado corretamente, reinicie o Apache através da seguinte linha de comando
systemctl restart apache2
Para verificar o status do apache, você poderá utilizar o seguinte comando
systemctl status apache2.service
3) Preparar Servidor para receber conexões remotas
apt-get install rssh
nano /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
service sshd restart
4) Baixe e instale o WinSCP que vai com certeza auxiliar na cópia de arquivos do Windows para o Servidor Linux
5) Copie os arquivos de instalação do WebDev para a pasta /var/www/html
6) Dê permissão de execução para o arquivo de instalação chmod +x WebDev_Install
7) Execute a instalação tomando o cuidado de preencher corretamente o caminho do arquivo de configuração do apache
Após a instalação será apresentado a URL tanto do WebDeb, bem como do HF
http://<IP>/WDAdminWeb200
http://<IP>/WDAdminHF200
Login: Admin
Pass: admin


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 25 juin 2018 - 22:50
Membre enregistré
4 595 messages
Posté le 15 septembre 2018 - 17:28
PREZADOS,

É importante estar VERDE / GREEN o site e o ftp no iis IMPORTANTE estar verde!

É um dos problemas que mais ocorre usuario sem direitos necessarios também, bom ler sobre diretivas

TEM QUE SER OUTRA MAQUINA A HOSPEDAGEM COM O WAS,

NAO PODE SER A MESMA MAQUINA ONDE TEM O WEBDEV OU WINDEV

SE FOR TEM QUE TER UMA VM

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 15 septembre 2018 - 17:42
Membre enregistré
4 595 messages
Posté le 30 septembre 2018 - 16:06
Como configurar Redirect do domínio com e sem www
**************************************************************************************************************************************************

É bastante recomendado permitir que o usuário possa acessar o seu site com ou sem www na url.

Por exemplo: http://educoutinho.com.br e http://www.educoutinho.com.br

No entanto, para evitar duplicação na indexação do seu site pelo google é importante não manter o seu site respondendo tanto na versão sem www e com www. O que deve ser feito é um redireonamento 301 de uma url para outra.

É o que acontece quando você acessa o site do Facebook, ao digitar: facebook.com, o browser é redirecionado para www.facebook.com

No IIS é possível configurar o redirecionamento de duas formas, usando URL Rewrite ou HTTP Redirect.

No entanto, o URL Rewrite é uma opção bastante mais flexível, então vou mostrar somente como configurar utilizando essa opção.

1- Instalar o URL Rewrite
Para instalar a feature do URL Rewrite no IIS, faça o seguinte:

1- Abrir o Get Web Plataform Components do IIS:



2- Pesquisar por “URL Rewrite” e adicionar:



3- Completar a instalação:



4- O “Url Rewrite” irá aparecer no IIS:



2- Configurar bind no site
O “bind” do site do IIS deve ser configurado para responder tanto pelo domínio com www, quanto sem:



3- Configurar o redirecionamento
Você pode fazer as configurações de redirecionamento utilizando a interface do IIS (URL Rewrite / Add Rule), ou então alterar diretamente o arquivo web.config do site.

Se o seu site não tiver um arquivo web.config, basta criar o arquivo no diretório do site.

3.1- Redirecionamento “http://www.dominio.com.br” -> “http://dominio.com.br”

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect from www" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="www.*" />
</conditions>
<action type="Redirect" url="http://dominio.com.br/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>


3.2- Redirecionamento “http://dominio.com.br” -> “http://www.dominio.com.br”

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to www" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^dominio.com.br$" />
</conditions>
<action type="Redirect" url="http://www.dominio.com.br/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>


3.3- Redirecionamento “http://dominio.com.br” -> “https://dominio.com.br”

<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" negate="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="OFF" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>


3.4- Redirecionamento “http://www.dominio.com.br” -> “https://dominio.com.br” e http://dominio.com.br” -> “https://dominio.com.br”

<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Redirect from www" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="www.*" />
</conditions>
<action type="Redirect" url="https://dominio.com.br/{R:0}" />
</rule>
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" negate="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="OFF" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>


IMPORTANTE:

1- Cache do browser: Quando você for testar isso no browser, pode ser necessário fechar o browser e abri-lo novamente porque o browser faz cache dos redirecionamentos dos domínios, outra opção é abrir uma aba anônima no browser

2- Bind do IIS: Lembre-se que você precisa configurar no IIS o bind de todos os domínios que você vai utilizar, por exemplo, se você vai redirecionar “http://www.dominio.com.br” -> “https://dominio.com.br” e http://dominio.com.br” -> “https://dominio.com.br” você precisa configurar no IIS os seguintes binds:

http dominio.com.br
https dominio.com.br
http www.dominio.com.br
https www.dominio.com.br



--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 18 octobre 2018 - 14:46
Passo a passo em vídeo como trabalhar com o WAS (Webdev Aplication Server) e com o WHCC (Webdev Hosting Control Center)















:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 10 septembre 2019 - 01:12
EXEMPLO DE REDIRECT
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh"content="1;url=http://177.220.189.6/madero">
<script type="text/javascript">
window.location.href = "http://177.220.189.6/madero"
</script>
<title>MADERO & VIA SAUDE</title>
</head>
<body>
<!--Caso não abra o site click no link abaixo: -->
<br>
<a href='http://177.220.189.6/madero'>Clique Aqui</a>
</body>
</html>


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 10 septembre 2019 - 01:14
Membre enregistré
4 595 messages
Posté le 02 octobre 2019 - 15:58
Bom dia a todos

E se der o erro 32?
32, ERR_NO_APPLICATION O site <nome do aplicativo> é desconhecido: não foi configurado para Webdev.

Então você provavelmente instalou um noco WAS e zerou as configurações!!!









Fique tranquilo e faça o seguinte:

A) na Aba Sites e Webservice click no botao adicionar e localize os paths endereços de seus projetos onde foram instalados...


B) Na guia Configuration / Server / em o MS IIS e Apache, vc deve ter um deles rodadndo na porta 80
No rodapé tem "SERVER VIRTUAIS", clicque nesse botao e vai aparecer uma tela onde tem um flag a ser marcado para rodar versoes antigas do WAS, marque essa opção:

[x] Configure les server virtueis pour léxecution des sites et webservices de versions anterieures.
[x] Configure o servidor virtuais para a execução de sites e serviços da web de versões anteriores.
[x] Configure virtualis server for the execution of sites and webservices of previous versions.














C) Na aba Instalations/Configure
Em Admin, adicione as rotas do seu repositorio dos seus sites, webservices e ftp














D) Em avançado click em Diagnosticar e corrigir.





Feito isso é pra dar tudo certo e funcionar e nao dar mais o erro 32.

Caso ainda assim deu problema entre em contato comigo terei o maior prazer em te ajudar.

Um forte abraço atenciosamente,

Adriano Boller
Representante Oficial PCSOFT

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 02 octobre 2019 - 16:11
Membre enregistré
4 595 messages
Posté le 18 janvier 2020 - 13:24
Como desinstalar e instalar o MS IIS caso tenha algum problema com ele?


Para determinar a versão do Powershell instalada, execute o Powershell como Administrador e digite " $ PSVersiontable.PSVersion ".

Para remover IIS usando o PowerShell
** get-windowsfeature * web *

Remove-WindowsFeature Web-Default-Doc
Remove-WindowsFeature Web-Dir-Browsing
Erros de Web-Http de Remove-WindowsFeature
Remove-WindowsFeature Web-Static-Content
Remove-WindowsFeature Web-Http-Logging
Remove-WindowsFeature Web-Request-Monitor
Remove-WindowsFeature Web-Stat-Compressão
Remove-WindowsFeature Web-Filtering
Remove-WindowsFeature Web-Windows-Auth
Remove-WindowsFeature Web-Net-Ext45
Remover-WindowsFeature Web-Asp-Net45
Remove-WindowsFeature Web-ISAPI-Ext
Remove-WindowsFeature Web-ISAPI-Filter
Remover-Windows-Web-Mgmt-Console
Remove-WindowsFeature Web-Metabase

Para instalar IIS

** get-windowsfeature * web *

Instalar-WindowsFeature Web-Default-Doc
Install-WindowsFeature Web-Dir-Browsing
Erros Install-WindowsFeature Web-Http
Install-WindowsFeature Web-Static-Content
Install-WindowsFeature Web-Http-Logging
Instalar-WindowsFeature Web-Request-Monitor
Install-WindowsFeature Web-Stat-compactação
Install-WindowsFeature Web-Filtering
Install-WindowsFeature Web-Windows-Auth
Instalar-WindowsFeature Web-Net-Ext45
Instalar-WindowsFeature Web-Asp-Net45
Instalar-WindowsFeature Web-ISAPI-Ext
Instalar-WindowsFeature Web-ISAPI-Filter
Instalar-Windows-Web-Mgmt-Console
Install-WindowsFeature Web-Metabase
set-webconfigurationproperty "/system.applicationHost/sites/siteDefaults[1]/limits[1]" -name connectionTimeout -value (New-TimeSpan -sec 1200)

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 30 avril 2020 - 22:57
INSTALAÇÃO DEVE SER NESSE FORMATO DE ESTRUTURA DE DIRETORIOS

C:\WAS

C:\WAS\INSTALL

C:\WAS\DRIVERS

C:\WAS\WAS_20

C:\WAS\WAS_21

C:\WAS\WAS_22

C:\WAS\WAS_23

C:\WAS\WAS_24

C:\WAS\WAS_25

C:\WAS\MANUAIS


QUALQUER DUVIDA DA PASTA MSIIS ELA DEVE MANTER O FORMATO PADRAO NA UNIDADE C: OU D: ....
PODE TER DENTRO DELA AS PASTAS CRIADAS PELO WAS WEBDEV HOST CONTROL CENTER DEFINIDAS DESSA FORMA


D:\INETPUB\

D:\INETPUB\WWWROOT

D:\INETPUB\WWWROOT\USERS

D:\INETPUB\WWWROOT\USERS\SITES

D:\INETPUB\WWWROOT\USERS\WS_SOAP

D:\INETPUB\WWWROOT\USERS\WS_REST

D:\INETPUB\WWWROOT\USERS\DATA

D:\INETPUB\WWWROOT\USERS\FTP

DEVE USAR O WEBDEV HOST CONTROL CENTER PARA CRIAR O USUARIO QUE SERA USUARIO DO WAS E USAR ESSA ESTRUTURA DE DIRETORIOS.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 22 septembre 2022 - 22:10
Prezados,

Estou com o seguinte erro no Webdev

Ao dar Deploy Error ao testar os parametros de conexao, ou seja nem sobe o site, lembrando que o usuario senha e ip/dns estao ok,

o que pode ser?

Erro exibido na tela:

The HTTP server is not responding. Check the address and accessibility of the server.
System Error Details: 35

?????

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 22 septembre 2022 - 22:11
Membre enregistré
4 595 messages
Posté le 19 décembre 2023 - 13:00
1-nao instalar no workstation apenas no servidor

2-instalar o ms iis full e remover o ms iis express para não conflitar

3-diretorio de instalação do W.A.S. Windows
C:\PCSOFT\WAS\28

Se fizer update para 29
C:\PCSOFT\WAS\29

Ao instalar nova versão vai trazer da 28 para 29 as configurações

4-instalar os drivers nativos e suas respectivas dlls e dll complementares dentro da pasta dos bin do W.A.S.

5-testar os projetos do W.A.S. administrador na opção diagnóstico deve dar:

No problem

Em todos os que estão na combo

6-no botão server verificar qual aplicativo de server page está habilitado se Apache ou ms iis.

7-com o W.A.S. host control center criar um usuário e senha e definir onde vai ficar os sites, Webservices e websockets. Definir também o DNS nome.com.br para cada site, não usar apenas o usuário admin, fica difícil de dar suporte

8-verificar Firewall e antivírus liberar as portas 80, 21 e outras que seu projeto necessite

9-testar se os serviços do ms iis está funcionando no navegador
*Localhost* deve abrir a página do ms iis ou do apache

10-os usuários criados pelo host control center devem ser administradores

11-verificar se o serviço do ms iis é do W.A.S. está rodando no painel de controle, ferramentas administrativas, serviços, se estão Running

12-fazer o deploy usando a segunda informação, informe o DNS, usuário e senha e de testar, deve dar que está válido!

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 05 septembre 2024 - 01:20
Prezados,

Caso esteja dando o erro 404 só testar e diagnosticar um site ou webservice no Webdev faça a seguinte ação:

Step by step resolução W.A.S. 404 in diagnóstico

Copy c:\pcsoft\Windev 2024\Programs\Engine\Win64x86\*.*

From

c:\pcsoft\Windev 2024\Programs\Engine\Win32x86\

Copy all files

Resolve error 404


Caso tenha ainda problemas entre em contato comigo +55 41 99949 1800

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 28 avril 2025 - 20:46
Manual de Instalação do W.A.S. Webdev Application Server em um Servidor Windows Server

Este manual detalha o processo de instalação e atualização do W.A.S. (Webdev Application Server) da versão 22 para a versão 29, incluindo a aplicação do Update 4, configuração do Microsoft IIS, backup e validação em um servidor Windows Server. O procedimento inclui passos para backup do IIS, verificação de drivers, testes e resolução de possíveis problemas. Siga cada etapa cuidadosamente para garantir uma instalação bem-sucedida.

Pré-requisitos
• Acesso administrativo: Usuário com permissões de administrador no Windows Server (com senha) e capacidade de reiniciar a VM.
• Infraestrutura preparada: Infra com acesso para realizar snapshot da VM.
• Ferramentas necessárias:
◦ Pacote de instalação do W.A.S. 29 (versão full).
◦ Pacote do W.A.S. 29 Update 4.
◦ Driver do Microsoft SQL Server para W.A.S. 29.
◦ Microsoft Web Platform Installer (para Web Deploy, se necessário).
◦ Ferramentas nativas do Windows Server (Backup do Windows Server, appcmd, Gerenciador do IIS).
• Espaço em disco: Verifique se há espaço suficiente para backups e instalações.
• Backup inicial: Snapshot da VM e backup das configurações do IIS.

Passo a Passo
1. Realizar Snapshot da VM
• Responsável: Equipe de infraestrutura.
• Ação:
◦ Acesse o painel de gerenciamento da VM (ex.: VMware, Hyper-V).
◦ Crie um snapshot da VM antes de iniciar qualquer alteração.
◦ Nomeie o snapshot com data e descrição (ex.: Snapshot_WAS_Upgrade_20250428).
• Objetivo: Garantir um ponto de restauração em caso de falhas críticas.
• Nota: Confirme que o snapshot foi concluído com sucesso antes de prosseguir.
2. Parar o Serviço do W.A.S. 22
• Ação:
◦ Abra o Gerenciador de Serviços:
▪ Pressione Win + R, digite services.msc e pressione Enter.
◦ Localize o serviço do W.A.S. 22 (nome pode variar, ex.: WAS22 ou Webdev Application Server 22).
◦ Clique com o botão direito e selecione Parar.
• Verificação:
◦ Confirme que o serviço está parado (status: Parado).
• Objetivo: Evitar conflitos durante a instalação da nova versão e garantir que nenhum arquivo esteja em uso exclusivo.
3. Instalar o W.A.S. 29 (Versão Full)
• Ação:
◦ Faça o download do instalador do W.A.S. 29 (versão completa) a partir do site oficial ou fonte confiável.
◦ Execute o instalador como administrador:
▪ Clique com o botão direito no arquivo .exe e selecione Executar como administrador.
◦ Siga as instruções do assistente de instalação:
▪ Aceite os termos de licença.
▪ Escolha o diretório de instalação padrão ou personalize, se necessário.
▪ Complete a instalação.
• Verificação:
◦ Confirme que a instalação foi concluída sem erros.
◦ Verifique se o W.A.S. 29 aparece na lista de programas instalados (Painel de Controle > Programas e Recursos).
4. Importar Configurações do W.A.S. 22 para o W.A.S. 29
• Ação:
◦ Abra o painel de administração do W.A.S. 29 (geralmente acessível via atalho no menu Iniciar ou no diretório de instalação).
◦ Localize a opção de importação de configurações:
▪ Navegue até a seção de migração ou importação (ex.: Ferramentas > Importar Configurações).
◦ Selecione a pasta ou arquivo de configurações do W.A.S. 22 (geralmente em %ProgramFiles%\Webdev22 ou similar).
◦ Execute o processo de importação.
• Verificação:
◦ Confirme que todas as configurações (sites, pools de aplicativos, etc.) foram migradas corretamente.
◦ Verifique logs de importação para possíveis erros.
5. Instalar o W.A.S. 29 Update 4
• Ação:
◦ Baixe o pacote do W.A.S. 29 Update 4 do site oficial ou fonte confiável.
◦ Execute o instalador como administrador.
◦ Siga o assistente de instalação, que aplicará as atualizações necessárias.
• Verificação:
◦ Confirme que a versão do W.A.S. foi atualizada para o Update 4 (verifique em Ajuda > Sobre no painel do W.A.S.).
◦ Verifique logs de instalação para possíveis erros.
6. Verificar o Início do Serviço do W.A.S.
• Ação:
◦ Abra o Gerenciador de Serviços (services.msc).
◦ Localize o serviço do W.A.S. 29.
◦ Clique com o botão direito e selecione Iniciar (ou Reiniciar, se já estiver em execução).
• Verificação:
◦ Confirme que o serviço está em execução (status: Em Execução).
◦ Verifique os logs do W.A.S. para garantir que não há erros no início.
7. Instalar o Driver do Microsoft SQL Server para W.A.S. 29
• Ação:
◦ Baixe o driver do Microsoft SQL Server compatível com o W.A.S. 29 (disponível no site da Microsoft ou no pacote do W.A.S.).
◦ Execute o instalador do driver como administrador.
◦ Siga as instruções do assistente.
• Verificação:
◦ Confirme que o driver foi instalado corretamente (verifique em Programas e Recursos).
◦ Verifique se todas as DLLs necessárias estão presentes:
▪ Navegue até o diretório de instalação do driver (ex.: C:\Program Files\Microsoft SQL Server).
▪ Confirme a presença de arquivos como sqlsrv32.dll, msodbcsql.dll, etc.
◦ Teste a conectividade com o SQL Server, se aplicável, usando ferramentas como o SQL Server Management Studio.
8. Testar o W.A.S.
• Ação:
◦ Acesse o painel de administração do W.A.S. 29.
◦ Verifique se o serviço está no ar:
▪ Tente acessar um site hospedado no W.A.S. via navegador (ex.: http://localhost ou URL específica).
• Verificação:
◦ Confirme que o site carrega corretamente.
◦ Verifique os logs do W.A.S. e do IIS para possíveis erros.
9. Configurar o W.A.S.
• Ação:
◦ Abra o painel de administração do W.A.S. 29.
◦ Navegue até a aba Configurações e clique no botão Server.
• Verificação:
◦ Confirme as próximas etapas de configuração.
10. Verificar e Definir o Microsoft IIS
• Ação:
◦ No painel de configuração do W.A.S., verifique se o servidor está configurado para usar Microsoft IIS ou Microsoft IIS Express.
◦ Selecione Microsoft IIS Full como a opção padrão.
• Verificação:
◦ Confirme que a configuração foi salva corretamente.
11. Habilitar Suporte a Versões Antigas
• Ação:
◦ Na mesma aba de configurações, marque a opção Rodar Versões Antigas.
• Verificação:
◦ Confirme que a caixa está marcada.
12. Configurar Opções Padrão
• Ação:
◦ Marque a opção Default e todas as outras caixas disponíveis na seção de configurações (All Check Items).
• Verificação:
◦ Confirme que todas as opções foram selecionadas e salvas.
13. Executar Diagnóstico
• Ação:
◦ Clique no botão Diagnóstico no painel de administração.
◦ Selecione um site padrão para validação.
◦ Execute o diagnóstico.
• Verificação:
◦ A mensagem final deve ser No Problem.
◦ Se aparecerem erros, prossiga para a próxima etapa.
14. Corrigir Erros no Diagnóstico
• Ação:
◦ Se o diagnóstico indicar problemas, clique em Fix para tentar corrigir automaticamente.
◦ Se o problema persistir, atualize o Microsoft IIS:
▪ Abra o Painel de Controle > Programas e Recursos > Ativar ou Desativar Recursos do Windows.
▪ Localize Serviços de Informações da Internet (IIS).
▪ Marque todas as opções disponíveis para garantir uma instalação completa.
▪ Clique em OK e reinicie o servidor, se necessário.
• Verificação:
◦ Repita o diagnóstico para confirmar a correção.
15. Reinstalar o Microsoft IIS (Último Caso)
• Ação:
◦ Se o Fix não resolver, reinstale o IIS:
▪ Desmarque todas as opções de IIS em Ativar ou Desativar Recursos do Windows.
▪ Reinicie o servidor.
▪ Reative todas as opções de IIS, marcando tudo.
▪ Reinicie o servidor novamente.
• Verificação:
◦ Execute o diagnóstico novamente.
16. Validar Diagnóstico Final
• Ação:
◦ Repita o processo de diagnóstico.
• Verificação:
◦ Confirme que a mensagem final é No Problem.
17. Realizar Backup das Configurações do Microsoft IIS
• Ação:
◦ Antes de considerar a instalação concluída, faça um backup das configurações e conteúdos do IIS.
◦ Método 1: Usando appcmd:
1 Abra o Prompt de Comando como administrador.
2 Execute:
%windir%\system32\inetsrv\appcmd add backup "BackupIIS_20250428"
3
4 Verifique a pasta %windir%\System32\inetsrv\backup para confirmar a criação do backup.
5 Copie a pasta de backup para um local seguro (ex.: disco externo ou NAS).
◦ Método 2: Usando Web Deploy:
1 Instale o Web Deploy via Microsoft Web Platform Installer.
2 Abra o Gerenciador do IIS (inetmgr).
3 Clique com o botão direito no servidor e selecione Deploy > Export Server Package.
4 Siga o assistente e salve o pacote .zip em um local seguro.
◦ Backup dos Arquivos de Sites:
1 Identifique os diretórios dos sites (ex.: C:\inetpub\wwwroot).
2 Copie os diretórios para um local seguro usando:
robocopy C:\inetpub\wwwroot D:\Backups\wwwroot /MIR
3
4 Opcionalmente, configure um backup agendado com o Backup do Windows Server:
▪ Abra wbadmin.msc.
▪ Configure um backup personalizado incluindo C:\inetpub e o estado do sistema.
• Verificação:
◦ Confirme que os backups foram criados e estão acessíveis.
◦ Teste a restauração em um ambiente de teste, se possível.

Resolução de Problemas
A. Processos em Modo Exclusivo
• Sintoma: Erros durante a instalação ou importação devido a arquivos bloqueados.
• Solução:
◦ Pare o serviço do W.A.S. e do IIS:
▪ No services.msc, pare os serviços WAS29 e W3SVC (World Wide Web Publishing Service).
◦ Reinicie o servidor, se necessário.
◦ Repita a etapa problemática.
B. Microsoft IIS Incompleto
• Sintoma: Diagnóstico não retorna No Problem, e o Fix não corrige.
• Solução:
◦ Reinstale o IIS:
▪ No Painel de Controle > Ativar ou Desativar Recursos do Windows, desmarque e remarque todas as opções de Serviços de Informações da Internet.
▪ Reinicie o servidor.
◦ Execute o diagnóstico novamente.
C. Falha Crítica
• Sintoma: A instalação ou configuração falha repetidamente, ou o servidor apresenta instabilidade.
• Solução:
◦ Restaure o snapshot da VM:
▪ Acesse o painel de gerenciamento da VM.
▪ Reverter para o snapshot criado no passo 1.
◦ Reavalie os pré-requisitos e repita o processo.

Boas Práticas
• Teste após cada etapa: Valide o funcionamento do W.A.S. e do IIS após cada passo crítico.
• Documente alterações: Registre todas as configurações alteradas e backups criados.
• Automatize backups: Configure backups regulares do IIS e dos arquivos de sites.
• Ambiente de teste: Se possível, realize o procedimento em um ambiente de homologação antes de aplicá-lo em produção.
• Verificação final:
◦ Acesse todos os sites hospedados no W.A.S. para confirmar funcionamento.
◦ Monitore os logs do W.A.S. e do IIS por 24-48 horas após a instalação.

Resumo
Seguindo este manual, você terá:
• Atualizado o W.A.S. da versão 22 para a 29 com Update 4.
• Configurado o Microsoft IIS corretamente.
• Realizado backups das configurações e conteúdos do IIS.
• Validado a instalação com diagnósticos.
• Resolvido possíveis problemas com soluções claras.
Se precisar de ajuda adicional ou encontrar erros específicos, entre em contato com o suporte técnico do W.A.S. ou da infraestrutura.

Nota Final: Em caso de falhas irrecuperáveis, restaure o snapshot da VM e revise os passos antes de tentar novamente.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 15 juin 2025 - 15:28
Manual W.A.S.

O objetivo será reinstalar corretamente o MS IIS, garantir que o dism.exe funcione com o WebDev Application Server (W.A.S.) da PCSOFT, criar o usuário certo, aplicar as permissões corretas, e garantir que o diagnóstico do W.A.S. retorne ✅ NO PROBLEM.



📘 MANUAL COMPLETO: Instalação, Configuração e Diagnóstico do W.A.S. com MS IIS e DISM.EXE no Windows

✅ Objetivo final: Diagnóstico do W.A.S. funcionando com “NO PROBLEM”, incluindo execução do DISM.EXE, sem erros de permissão.



🧩 ETAPA 1 – Remover e Reinstalar o IIS do Windows

🔻 1.1 – Remover o IIS por completo (caso esteja corrompido)
1. Pressione Win + R, digite appwiz.cpl e pressione Enter
2. Clique em Ativar ou desativar recursos do Windows (à esquerda)
3. Na lista, desmarque completamente:
• Serviços de Informações da Internet (IIS)
• Serviços da World Wide Web
• Console de Gerenciamento da Web (IIS)
4. Clique em OK
5. Aguarde a remoção completa (leva alguns minutos)
6. Reinicie o computador para garantir a limpeza



🔁 1.2 – Instalar novamente o IIS completo com todos os recursos necessários

Método 1 – Via GUI (Gráfico)
1. Vá em appwiz.cpl > Ativar ou desativar recursos do Windows
2. Marque:
• ✅ Serviços de Informações da Internet
• ✅ Serviços da World Wide Web
• ✅ Recursos comuns HTTP
• Documentos padrão
• Diretório de Navegação
• Erros HTTP
• Redirecionamento HTTP
• Publicação Estática
• ✅ Recursos de Desenvolvimento de Aplicativo
• Extensões ISAPI
• Filtros ISAPI
• Suporte a ASP.NET
• CGI
• .NET Extensibility 3.5 e 4.8
• ✅ Segurança
• Autenticação básica
• Autenticação do Windows
• ✅ Ferramentas de Gerenciamento
• Console de Gerenciamento IIS
• Scripts de gerenciamento e ferramentas
3. Clique em OK e aguarde a instalação
4. Reinicie o computador

Método 2 – Via PowerShell (opcional)

DISM /Online /Enable-Feature /FeatureName:IIS-WebServerRole /All
DISM /Online /Enable-Feature /FeatureName:IIS-WebServer /All
DISM /Online /Enable-Feature /FeatureName:IIS-ISAPIExtensions
DISM /Online /Enable-Feature /FeatureName:IIS-ISAPIFilter
DISM /Online /Enable-Feature /FeatureName:IIS-ASPNET
DISM /Online /Enable-Feature /FeatureName:IIS-CGI
DISM /Online /Enable-Feature /FeatureName:IIS-ManagementConsole




🧩 ETAPA 2 – Criar Usuário Local com Permissões Corretas

👤 2.1 – Criar o usuário local was_admin
1. Pressione Win + R, digite: compmgmt.msc
2. Vá para: Usuários e Grupos Locais > Usuários
3. Clique com o direito em Usuários > Novo Usuário
4. Preencha:
• Nome do usuário: was_admin
• Senha: Senha@Forte2025
• ❌ Desmarque: “Usuário deve alterar a senha no próximo logon”
• ✅ Marque: “Senha nunca expira”
5. Clique em Criar



👥 2.2 – Adicionar was_admin ao grupo Administradores
1. Clique em Grupos
2. Duplo clique em Administradores
3. Clique em Adicionar
4. Digite was_admin, clique em Verificar nomes, e clique em OK



🧪 2.3 – Adicionar ao grupo IIS_IUSRS
1. Ainda em Grupos, clique em IIS_IUSRS
2. Clique em Adicionar
3. Adicione was_admin e clique em OK

📌 Importante: se o grupo IIS_IUSRS não existir, crie com:

net localgroup IIS_IUSRS /add




🧩 ETAPA 3 – Validar e Corrigir Permissões do DISM.EXE

🔎 3.1 – Localizar o dism.exe
• Caminho padrão: C:\Windows\System32\dism.exe

🛠 3.2 – Corrigir permissões
1. Clique direito no dism.exe > Propriedades
2. Aba Segurança > clique em Editar
3. Clique em Adicionar:
• Nome: was_admin
• Permissão: Controle total
4. Adicione também: IIS_IUSRS com Leitura e Execução
5. Clique em Aplicar > OK



🧩 ETAPA 4 – Instalar e Configurar o WebDev Application Server

🔧 4.1 – Instale o W.A.S. com as opções corretas
1. Baixe o instalador do WebDev Application Server da sua versão (ex: WD28)
2. Execute como Administrador
3. Selecione:
• Tipo de instalação: Servidor IIS
• Ativar como serviço do Windows
4. Finalize a instalação



🔧 4.2 – Configurar o W.A.S. Admin
1. Abra:

C:\Program Files (x86)\PC SOFT\WEBDEV\WAS\WD280ADMIN.EXE

(Ajuste para sua versão: WD270, WD280, WD290…)

2. Vá na aba Parâmetros do servidor
3. Configure:
• Porta: 80 (ou 8080)
• Pasta dos projetos: C:\WebDev\Projetos
• Conta de serviço: use was_admin com a senha configurada
4. Clique em Aplicar



🧩 ETAPA 5 – Diagnóstico “NO PROBLEM” do W.A.S.

🧪 5.1 – Executar Diagnóstico
1. Acesse via navegador:

http://localhost/WD280AWP/WASAdmin.html

2. Clique na aba Diagnóstico
3. Clique em Executar Diagnóstico



✅ Resultado Esperado
• Todos os itens devem exibir “NO PROBLEM”, incluindo:
• dism.exe executando corretamente
• Verificação do IIS, das permissões, das DLLs e do Application Pool



💡 Extras Recomendados

🔄 Reiniciar o Application Pool manualmente
1. Abra o Gerenciador do IIS
2. Vá em Pools de Aplicativos
3. Selecione o Pool do WebDev (ex: WD280AWPAppPool)
4. Clique com o direito > Reciclar



🧰 Script para diagnóstico automático

Crie um arquivo diagnostico_was.ps1 com:

Start-Process "C:\Windows\System32\dism.exe" -ArgumentList "/Online", "/Cleanup-Image", "/ScanHealth" -Wait
Start-Process "http://localhost/WD280AWP/WASAdmin.html"




📎 IMPORTANTE

DEVE O USUÁRIO ATUAL SER ADMINISTRADOR LOCAL DA MÁQUINA COM DIRETIVA IUSR DO MSIIS


Perfeito, Adriano. Vamos completar o manual com as instruções precisas para:
• Ativar/desativar o serviço do IIS (W3SVC)
• Ativar/desativar o serviço do WebDev Application Server (WAS)
• Garantir que ambos iniciem corretamente com o Windows ou sejam reiniciados manualmente em caso de erro



🧩 ETAPA 6 – Gerenciar os Serviços do IIS e W.A.S. no Windows



🔧 6.1 – Serviço do IIS (Serviço de Publicação na World Wide Web - W3SVC)

▶ Ativar / Iniciar Manualmente:

Start-Service W3SVC

Ou no Prompt de Comando (Admin):

net start W3SVC

⏸ Parar o serviço:

Stop-Service W3SVC

net stop W3SVC

🔄 Reiniciar o serviço:

Restart-Service W3SVC

⚙️ Definir para iniciar automaticamente com o Windows:

Set-Service W3SVC -StartupType Automatic




🔧 6.2 – Serviço do WebDev Application Server (WAS)

Nome do serviço varia conforme a versão:
• WD270Admin, WD280Admin, WD290Admin etc.
Confirme em services.msc ou taskmgr.exe > Serviços



▶ Iniciar o serviço do WAS:

Start-Service "WD280Admin"

net start "WD280Admin"

⏸ Parar o serviço:

Stop-Service "WD280Admin"

net stop "WD280Admin"

🔄 Reiniciar o serviço:

Restart-Service "WD280Admin"

⚙️ Definir para iniciar com o Windows:

Set-Service "WD280Admin" -StartupType Automatic

💡 Substitua WD280Admin pela sua versão real do WebDev.
Exemplo: WD290Admin se for versão 29, ou WD270Admin se for a 27.



🖥 Alternativa via interface gráfica
1. Pressione Win + R, digite: services.msc
2. Localize:
• Serviço de Publicação na World Wide Web → corresponde ao IIS
• WD280Admin ou similar → serviço do WebDev
3. Clique com botão direito > Iniciar, Parar ou Propriedades para alterar o tipo de inicialização para Automático



✅ Verificação Final

Após executar:
• Start-Service W3SVC
• Start-Service "WD280Admin"

Acesse:

http://localhost/WD280AWP/WASAdmin.html

E execute o Diagnóstico, que deve exibir:

🟢 NO PROBLEM




📋 INSTALAÇÃO DO W.A.S. COM SUPORTE A DIAGNÓSTICO “NO PROBLEM”

1. Remover o IIS existente
• Vá em appwiz.cpl > Ativar ou desativar recursos do Windows
• Desmarque todos os itens relacionados ao IIS
• Clique em OK e aguarde a desinstalação
• Reinicie o Windows



2. Reinstalar o IIS com todos os componentes completos de servidor web
• Acesse novamente Ativar ou desativar recursos do Windows
• Marque:
• Serviços de Informações da Internet
• Todos os subitens de:
• Recursos comuns HTTP
• Recursos de desenvolvimento de aplicativos
• ASP.NET
• ISAPI Extensions e Filters
• CGI
• Console de Gerenciamento
• Finalize a instalação e reinicie novamente



3. Abrir o Gerenciador do Computador
• Execute compmgmt.msc
• Vá até Usuários e Grupos Locais > Usuários



4. Criar o usuário local was_admin
• Botão direito em Usuários > Novo Usuário
• Nome: was_admin
• Senha: Senha@Forte2025
• Marcar: “Senha nunca expira”
• Desmarcar: “Usuário deve alterar senha no próximo logon”
• Criar o usuário



5. Adicionar was_admin aos grupos
• Grupos:
• Administradores
• IIS_IUSRS
• Acesse cada grupo > Adicionar > was_admin



6. Instalar o WebDev Application Server
• Execute o instalador do WAS como Administrador
• Selecione:
• Tipo de servidor: IIS
• Habilitar como serviço do Windows
• Conta de serviço: was_admin



7. Definir permissões no arquivo dism.exe
• Caminho: C:\Windows\System32\dism.exe
• Clique direito > Propriedades > Segurança
• Adicionar:
• was_admin com controle total
• IIS_IUSRS com leitura e execução
• Aplicar as permissões



8. Executar o Diagnóstico do W.A.S.
• Acesse no navegador:

http://localhost/WD280AWP/WASAdmin.html


• Vá na aba Diagnóstico
• Clique em Executar Diagnóstico



✅ 9. Resultado Esperado:
• Diagnóstico retorna:

“NO PROBLEM”

em todos os itens, incluindo o dism.exe.



Então é possível automatizar a maioria desses passos via PowerShell, incluindo:
• Remoção e instalação completa do IIS
• Criação do usuário local was_admin
• Adição aos grupos Administradores e IIS_IUSRS
• Instalação do W.A.S. em modo silencioso (parcialmente possível)
• Configuração de permissões no dism.exe

Abaixo está um PowerShell script completo, comentado e organizado por etapas, para executar praticamente tudo de forma automatizada:



⚙️ Script PowerShell: Instalação do IIS, Usuário e Configuração do W.A.S.

# 🧼 1. Remover IIS existente
Write-Host "Removendo IIS..." -ForegroundColor Yellow
Disable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole -NoRestart -ErrorAction SilentlyContinue
Disable-WindowsOptionalFeature -Online -FeatureName IIS-WebServer -NoRestart -ErrorAction SilentlyContinue
Disable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementConsole -NoRestart -ErrorAction SilentlyContinue

# 🔁 2. Reinstalar IIS completo
Write-Host "Instalando IIS com todos os recursos..." -ForegroundColor Green
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServer -All
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIExtensions
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ISAPIFilter
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ASPNET
Enable-WindowsOptionalFeature -Online -FeatureName IIS-CGI
Enable-WindowsOptionalFeature -Online -FeatureName IIS-ManagementConsole

# 👤 3. Criar o usuário local was_admin
$usuario = "was_admin"
$senha = ConvertTo-SecureString "Senha@Forte2025" -AsPlainText -Force
Write-Host "Criando usuário local: $usuario" -ForegroundColor Cyan
Try {
New-LocalUser -Name $usuario -Password $senha -FullName "Administrador WAS" -PasswordNeverExpires -UserMayNotChangePassword
} Catch {
Write-Host "Usuário já existe ou erro ignorável" -ForegroundColor DarkYellow
}

# 👥 4. Adicionar aos grupos Administradores e IIS_IUSRS
Write-Host "Adicionando usuário aos grupos locais..." -ForegroundColor Cyan
Add-LocalGroupMember -Group "Administradores" -Member $usuario
Add-LocalGroupMember -Group "IIS_IUSRS" -Member $usuario

# 🔐 5. Definir permissões no dism.exe
$dismPath = "$env:SystemRoot\System32\dism.exe"
Write-Host "Definindo permissões no dism.exe..." -ForegroundColor Magenta

# Requer módulo SetACL ou uso de icacls (mais nativo)
icacls $dismPath /grant "$usuario:F"
icacls $dismPath /grant "IIS_IUSRS:RX"

# 🔧 6. Configurar o serviço do WAS (Manual: instalar via setup e apontar para IIS)
Write-Host "🧩 Etapa manual: Instale o WebDev Application Server e selecione modo IIS." -ForegroundColor DarkGray
Start-Sleep -Seconds 3

# ▶ 7. Ativar serviços necessários
Write-Host "Ativando serviços do IIS e W.A.S..." -ForegroundColor Blue
Start-Service W3SVC

# Substitua pela versão correspondente ao seu WebDev (ex: WD280Admin)
$wasService = "WD280Admin"
Try {
Start-Service $wasService
Set-Service $wasService -StartupType Automatic
} Catch {
Write-Host "O serviço $wasService ainda não foi instalado ou o nome está incorreto." -ForegroundColor Red
}

Write-Host "`n🟢 Script concluído. Execute o instalador do WebDev Application Server agora e configure o diagnóstico." -ForegroundColor Green




🛠️ Observações

Item Status via PowerShell
Instalar/remover IIS ✅ Suportado
Criar usuário local ✅ Suportado
Adicionar a grupos locais ✅ Suportado
Configurar permissões ✅ Com icacls
Instalar WebDev Application Server ❌ Requer instalador manual
Executar diagnóstico WAS ❌ Apenas via navegador




📌 O que é Handler Mappings no IIS?

O recurso Handler Mappings no IIS define como o servidor web deve tratar diferentes tipos de requisições que chegam a um site ou aplicação.

🔧 Ele faz o mapeamento entre:
• Um caminho (URL) de requisição
• Um executável (como wdXXXawp.exe, wdXXXweb.exe, ou CGI)
• Um módulo de manipulação (como CgiModule, StaticFileModule, etc.)



🧠 Para que serve no contexto do WebDev Application Server?

No caso do WAS, os “handlers” mapeiam URLs REST, AWP e SOAP para os executáveis da engine WebDev, como:
• wd220awp.exe
• wd250awp.exe
• wd280awp.exe
• etc.



📍 Exemplo real da imagem:

Request Path:

/SimetraRest

Executable:

\WP\wd220awp.exe /WEBSERVICE_REST=SIMETRAMIDDLEREST

Módulo:
CgiModule



📌 O que essa configuração faz?

Quando o IIS recebe uma requisição HTTP para o endereço:

http://meuservidor/SimetraRest

Ele irá:
1. Interceptar essa URL usando o Request Path
2. Executar o wd220awp.exe com o argumento /WEBSERVICE_REST=SIMETRAMIDDLEREST
3. Esse executável vai processar a requisição WebService RESTful associada ao projeto WebDev SIMETRAMIDDLEREST
4. Retornar o resultado ao cliente, como um JSON, XML ou status code



📦 Tipos comuns de Handler usados no WebDev

Caminho Executável usado Função principal
/AWP ou /WB_ wdXXXawp.exe Páginas dinâmicas AWP ou Webservices
/WEBREST_xxx wdXXXawp.exe API REST do projeto WebDev
/SOAP_xxx wdXXXweb.exe Webservices SOAP
/STATIC StaticFileModule Imagens, JS, CSS




✅ Por que é essencial configurar corretamente os Handler Mappings?

Porque sem eles o IIS:
• Não sabe como processar os endpoints REST ou AWP
• Pode retornar erro 404 ou 500
• Não executa corretamente os Webservices do WebDev



⚠️ Problemas comuns quando mal configurado:

Problema Causa provável
Erro 404 Caminho não mapeado
Erro 500 - CGI Failed Permissões erradas no executável
Diagnóstico do WAS falha Handler não aponta para a engine correta
Webservice não responde Caminho ou nome incorreto no parâmetro /WEBSERVICE_REST=




🛠️ Onde configurar?

No IIS Manager:
1. Selecione o site
2. Vá em Handler Mappings
3. Clique em Add Script Map…
4. Configure:
• Request path: /meuendpoint
• Executable: C:\Path\wd280awp.exe /WEBSERVICE_REST=NOMEPROJETO
• Name: WB_/meuendpoint
• Module: CgiModule



✅ Dica Final:

Sempre verifique:
• Caminho físico para o executável (wdXXXawp.exe)
• Nome correto do projeto WebDev no parâmetro /WEBSERVICE_REST=
• Permissões de leitura/execução do usuário do pool de aplicativos (IIS_IUSRS ou was_admin)



Perfeito, Adriano. Abaixo está um manual completo e detalhado de como:
1. Criar um usuário no Host Control Center (HCC) do WebDev Application Server (W.A.S.)
2. Utilizar esse usuário para publicar (deploy) um site ou webservice
3. Incluir boas práticas de segurança e permissões



📘 Manual Completo: Criação de Usuário no Host Control Center do W.A.S. e Deploy de Site/Webservice

✅ Objetivo: permitir que você ou sua equipe possam publicar projetos WebDev com segurança via rede, utilizando o HCC (Host Control Center).



🧩 1. O que é o Host Control Center?

O Host Control Center (HCC) é a interface do WebDev Application Server que permite:
• Gerenciar usuários de publicação
• Definir pastas e permissões de hospedagem
• Publicar sites e webservices remotamente via WebDev IDE
• Proteger e isolar ambientes de deploy



🧭 Acessando o HCC
1. Pressione Win + R
2. Execute:

C:\Program Files (x86)\PC SOFT\WEBDEV\WAS\WD280HCC.EXE

Substitua WD280HCC.EXE pela versão correspondente (ex: WD270HCC.EXE)



👤 2. Criando um Novo Usuário no HCC

Passo a Passo:
1. Abra o Host Control Center
2. Clique na aba [Usuários]
3. Clique em Adicionar ou [Novo Usuário]
4. Preencha os dados:
• Nome de usuário: cliente01 (exemplo)
• Senha: Senha@Forte2025
• Marque: ✅ “Usuário pode fazer upload de sites”

📂 Definir Diretório
1. Escolha um diretório isolado para esse usuário:
• Exemplo: C:\WebDevSites\cliente01
2. Marque: ✅ “Criar o diretório se não existir”
3. Defina a quota de espaço (opcional)
4. Clique em [OK]

📌 A pasta definida será usada como raiz do site no servidor.



🧩 3. Configurar o Site no WebDev (IDE)

Passo a Passo no Projeto:
1. Abra o projeto WebDev que deseja publicar
2. Vá em:

Projeto > Implementar > Site na Internet ou Intranet


3. Selecione:
• Publicar em servidor remoto
4. Clique em Configurar… ou Novo…

Dados da Conexão:

Campo Valor exemplo
Tipo de servidor WebDev Application Server
Endereço IP ou DNS 192.168.1.100 ou meusite.com.br
Porta 4900 (padrão do HCC)
Nome de usuário cliente01
Senha Senha@Forte2025
Diretório remoto (será definido automaticamente)

🔒 Certifique-se que a porta 4900 esteja liberada no firewall do servidor.



🚀 4. Fazendo o Deploy do Site/Webservice
1. Após preencher os dados acima, clique em Conectar
2. O WebDev se conectará ao servidor via Host Control Center
3. Clique em [Enviar todos os arquivos do site]
4. O projeto será copiado para:

C:\WebDevSites\cliente01\[NomeDoProjeto]


5. O WAS ativará o site automaticamente

Você poderá acessá-lo via:

http://192.168.1.100/NomeDoProjeto




🔐 5. Segurança e Boas Práticas

Recurso Recomendação
Nome do usuário Não use nomes genéricos como “admin”
Senha Utilize letras, números, símbolos
Pasta raiz Um diretório separado para cada cliente
Permissões Não permita acesso à raiz do sistema
Porta 4900 Liberar apenas para IPs específicos (opcional)
Logs Habilitar logs no WAS (pasta LOG)




🛠 6. Ferramentas Adicionais no HCC
• 📁 Ver arquivos publicados: visualizar e excluir arquivos remotamente
• ♻️ Forçar reinicialização de site
• ❌ Bloquear/desbloquear site para manutenção
• 📦 Compactar conteúdo
• 📄 Logs de publicação e execução



✅ Conclusão

Com esse procedimento, você pode:
• Criar usuários de deploy com isolamento por cliente ou projeto
• Fazer deploy seguro diretamente do WebDev IDE
• Controlar permissões e pastas por usuário
• Centralizar a gestão de sites e serviços Web



Segue um manual aprimorado com:
• 🖥️ Screenshots ilustrativas do HCC e da IDE WebDev
• 📋 Checklist de publicação
• 🔐 Lista de portas e permissões necessárias



🖼️ 1. Screenshots ilustrativas

Estas imagens ajudam a visualizar onde cada recurso está localizado, mesmo que não representem exatemente sua versão:

Painel “Handler Mappings” do IIS – equivalente ao ambiente do HCC  




Screenshot 1: Aba 'Usuários' no HCC, onde se cria accounts de publicação.
Screenshot 2: Janela de deploy na IDE WebDev, com campos de conexão IP/porta, usuário e senha.




📋 2. Checklist de publicação via HCC

Faça um checklist completo antes de começar um deploy:

Etapa Descrição Status
1. Criar usuário no HCC Nome, senha e marcar “upload permitido” ☐
2. Definir diretório remoto isolado Ex: C:\WebDevSites\clienteX ☐
3. Inspecionar permissões do diretório Leitura, gravação e execução para WAS ☐
4. No WebDev IDE, configurar conexão HCC IP, porta 4900, usuário e senha ☐
5. Testar conexão Clique em “Conectar” ☐
6. Enviar arquivos “Enviar todos os arquivos do site” ☐
7. Validar deploy Acesse http://IP/NomeProjeto
8. Executar diagnóstico WAS Via HCC ou IDE ☐
9. Verificar “NO PROBLEM” Se tudo OK, finalizar ☐
10. Registrar data e logs Nomes, data, possível rollback ☐




🔐 3. Lista de portas e permissões

🌐 Portas de rede

Porta Função Recomendação
80 e 443 Servir HTTP/HTTPS Liberar no firewall
4900 Comunicação HCC / IDE Liberar e redirecionar se necessário
(Opcional) 443 + 8443 TLS Se usar conexão segura no HCC Criar certificado local




🔑 Permissões de sistema
• Diretório do site (C:\WebDevSites\…)
• Usuário WAS (ex: was_admin) ou IIS_IUSRS → Leitura, gravação e execução
• Executável W.A.S.
• Caminho: C:\Program Files (x86)\PC SOFT\WEBDEV\WAS\*.exe
• Permissões: Leitura e execução para was_admin, IIS_IUSRS
• Pasta do projeto WebDev
• Permissão de leitura e execução — mesma regra de cima
• Logs de publicação
• Escrita para o usuário criado no HCC



✅ Resumo do processo
1. Crie usuário no HCC com permissão de upload
2. Configure diretório exclusivo e defina permissões
3. No IDE WebDev, configure conexão HCC (IP, porta, login)
4. Conecte e envie arquivos via “Enviar todos”
5. Acesse o URL gerado para validar a publicação
6. Execute diagnóstico do W.A.S.
7. Cheque “NO PROBLEM”



Abaixo está um manual completo e detalhado para converter o W.A.S. 27 para o W.A.S. 28, ou seja, migrar do WD270ADMIN.EXE para o WD280ADMIN.EXE, garantindo compatibilidade total, preservação de sites existentes, e operação com diagnóstico “NO PROBLEM”.



📘 Manual de Conversão do W.A.S. 27 para W.A.S. 28

Migração do WebDev Application Server 27 para WebDev Application Server 28



🧩 1. Checklist de Pré-Migração

✅ Antes de iniciar a conversão, verifique:

Item Verificado?
Backup completo dos sites publicados em C:\WebDev27\ ou similar ☐
Backup da pasta de configuração WAS: C:\ProgramData\PC SOFT\WAS* ☐
Verificar se há sites ativos em produção ☐
Verificar a versão do IIS e atualizações de segurança aplicadas ☐
Anotar configurações personalizadas do HCC e WD270Admin ☐




🧭 2. Localizar e Anotar as Configurações Atuais

Abra o WD270ADMIN.EXE e anote:
• Quais sites estão ativos
• Caminhos físicos dos sites publicados
• Parâmetros de porta, diagnóstico, e nome da máquina
• Configurações do Host Control Center (usuários, diretórios, quotas)



🧰 3. Instalar o W.A.S. 28 (WD280ADMIN.EXE)

Passo a passo:
1. Baixe o instalador do WAS 28 no site da PCSoft
2. Execute o instalador como Administrador
3. Selecione:
• Tipo de servidor: Servidor IIS
• Habilitar o serviço como serviço do Windows
4. Finalize a instalação

Caminhos após instalação:

Item Local padrão
Admin do WAS C:\Program Files (x86)\PC SOFT\WEBDEV\WAS\WD280ADMIN.EXE
HCC C:\Program Files (x86)\PC SOFT\WEBDEV\WAS\WD280HCC.EXE
Sites publicados C:\WebDevSites\ (pode ser reutilizado)




🔁 4. Migrar Sites do WAS 27 para o WAS 28

Opção A – Reimplantação via IDE
1. Abra o projeto no WebDev 28 IDE
2. Vá em:

Projeto > Implementar > Site ou Webservice


3. Altere a conexão para:
• Porta: 4900
• Nome de usuário (se mantido no HCC): cliente01
• Atualize diretório remoto para apontar para WD280
4. Clique em “Enviar todos os arquivos do site”



Opção B – Cópia manual (com ajustes)
1. Copie o conteúdo de:

C:\WebDev27Sites\projetoA

para:

C:\WebDevSites\projetoA


2. Abra o WD280ADMIN.EXE e registre manualmente o site:
• Adicione novo site
• Aponte para o novo diretório físico
• Configure o modo (AWP, Session, Webservice, etc.)
• Defina a porta e domínio, se necessário



🛡️ 5. Validar a Instalação
1. Acesse:

http://localhost/WD280AWP/WASAdmin.html


2. Clique em Diagnóstico
3. Confirme que tudo retorna “NO PROBLEM”, inclusive:
• dism.exe
• permissões
• IIS funcionando



🔐 6. Permissões Importantes

Recurso Acesso Necessário
Pasta do site (C:\WebDevSites) IIS_IUSRS, was_admin: Leitura/Execução
wd280awp.exe Execução permitida no IIS + firewall
Porta 4900 Liberada no firewall
C:\ProgramData\PC SOFT\WAS28 Acesso para serviço WD280Admin




📌 7. Após Migração

Ação Necessário?
Parar serviço WD270Admin (net stop WD270Admin) ✅
Definir WD280Admin como automático (Set-Service) ✅
Remover WAS 27 (se for descontinuar) ❌ Opcional




📁 8. Script PowerShell para ajustes pós-instalação

# Iniciar WAS 28
Start-Service "WD280Admin"
Set-Service "WD280Admin" -StartupType Automatic

# Parar WAS 27
Stop-Service "WD270Admin"
Set-Service "WD270Admin" -StartupType Disabled




✅ Conclusão

Com este processo, você terá:
• Todos os sites em execução no WD280ADMIN.EXE
• Infraestrutura atualizada para a versão 28
• Compatibilidade com novos recursos do WebDev 28
• Diagnóstico validado com “NO PROBLEM”



Abaixo está um texto técnico e explicativo que pode ser usado como parte de um manual, documentação interna ou instrução operacional, detalhando como deve ser configurado o usuário ligado (logado) no servidor para que o WebDev Application Server (W.A.S.) funcione corretamente — especialmente no contexto de diagnóstico, deploy e execução via IIS:



📘 Requisitos do Usuário Logado no Servidor para Funcionamento do W.A.S. (WebDev Application Server)

Para garantir o funcionamento correto do WebDev Application Server (W.A.S.) da PCSOFT, principalmente quando utilizado com o IIS (Internet Information Services), é imprescindível que o usuário logado (ou utilizado como serviço) atenda aos seguintes critérios:



👤 1. O usuário deve pertencer ao grupo “Administradores” do Windows
• Isso garante permissões elevadas no sistema operacional, necessárias para:
• Registrar módulos no IIS
• Acessar arquivos de sistema (como dism.exe)
• Alterar configurações de serviços e diretórios protegidos
• Executar componentes do W.A.S. com privilégios completos

✅ Como verificar/adicionar:
• Execute compmgmt.msc
• Vá até: Usuários e Grupos Locais > Grupos > Administradores
• Confirme que o usuário está listado. Se não estiver, adicione-o manualmente.



🔐 2. O usuário deve fazer parte do grupo IIS_IUSRS
• Este grupo permite que o usuário execute aplicações hospedadas no IIS, como:
• Sites WebDev em modo AWP ou sessão
• Webservices REST/SOAP
• Scripts CGI (wd280awp.exe, por exemplo)
• O IIS_IUSRS é responsável por conceder:
• Leitura e execução em diretórios IIS
• Permissão de uso do pipeline HTTP do IIS
• Acesso seguro e controlado aos pools de aplicativos

✅ Como verificar/adicionar:
• Execute compmgmt.msc
• Vá até: Grupos > IIS_IUSRS
• Verifique se o usuário (ex: was_admin) está presente
• Se não estiver, adicione-o



⚙️ 3. O usuário usado no serviço WD280Admin (ou versão correspondente)
• O serviço do WebDev (WD280Admin.exe, WD270Admin.exe, etc.) pode ser configurado para ser executado com uma conta específica.
• Essa conta deve obrigatoriamente:
• Estar nos grupos Administradores e IIS_IUSRS
• Ter acesso total ao diretório de publicação (C:\WebDevSites\)
• Ter execução liberada para binários como wd280awp.exe, wdadmin280.dll etc.

✅ Como configurar:
• Vá até services.msc
• Encontre WD280Admin
• Clique com o botão direito > Propriedades > Logon
• Selecione “Esta conta” e informe .\was_admin e sua senha



✅ Resultado Esperado

Quando o usuário estiver corretamente configurado:
• O diagnóstico do WAS mostrará “NO PROBLEM”
• Webservices responderão corretamente via IIS
• Publicação via HCC e WebDev IDE funcionará sem erro
• O IIS poderá executar os scripts e handlers CGI do WebDev



Abaixo está o guia definitivo, consolidado com tudo que você expôs, transformado em um passo a passo técnico, seguro e funcional, para garantir que um usuário do grupo Administradores consiga executar o dism.exe a partir da pasta C:\Windows\System32, inclusive via scripts, agendador de tarefas e UAC desativado ou não, sem falhas como “acesso negado”, “erro 740” ou problemas de redirecionamento de saída.



✅ MANUAL COMPLETO: Permitir Execução Plena do dism.exe por um Usuário Administrador

Objetivo final: Executar o comando dism.exe /online /english /get-features com sucesso e sem restrições, seja manual, via script, ou agendador.



🧭 ETAPA 1 – Verificar e Garantir que o Usuário Está no Grupo “Administradores”

🔹 1.1 Abrir Prompt de Comando como Administrador
1. Pressione Win + S, digite cmd
2. Clique com o botão direito → Executar como administrador

🔹 1.2 Verificar Grupos do Usuário Atual:

whoami /groups

✔ Procure por: Administrators



🔹 1.3 Adicionar o usuário ao grupo (se necessário):

net localgroup Administradores "NOME_DO_USUARIO" /add

🔒 Requer privilégio de administrador global. Reinicie a sessão após adicionar.



📂 ETAPA 2 – Conceder Acesso Total ao dism.exe (sem afetar a pasta System32 inteira)

🔹 2.1 Garantir permissão segura apenas no executável:

icacls "C:\Windows\System32\dism.exe" /grant Administradores:F

✅ F = Full (controle total)



🔧 ETAPA 3 – Execução direta sem erros de elevação/UAC

🟡 Opção 1: Executar manualmente com permissão elevada

C:\Windows\System32\cmd.exe /k dism.exe /online /english /get-features

🟡 Opção 2: Script PowerShell com saída controlada

$log = "$env:TEMP\dism_output.txt"
Start-Process dism.exe -ArgumentList "/online /english /get-features" -Verb RunAs -RedirectStandardOutput $log -Wait
notepad $log




🧰 ETAPA 4 – Criação de Atalho Permanente “Executar como administrador”
1. Clique direito na área de trabalho → Novo > Atalho
2. Comando do atalho:

C:\Windows\System32\dism.exe /online /english /get-features

3. Depois:
• Clique com direito > Propriedades
• Aba Atalho > Avançado
• Marque: ✅ Executar como administrador



⏱ ETAPA 5 – Criar Tarefa no Agendador com Elevação Silenciosa
1. Abra o Agendador de Tarefas (taskschd.msc)
2. Clique em Criar Tarefa (não criar básica)
3. Aba Geral:
• Nome: DISM_Admin
• Marque: ✅ “Executar com privilégios mais altos”
4. Aba Ações:
• Ação: Iniciar um programa
• Programa: dism.exe
• Argumentos:

/online /english /get-features


5. Aba Gatilhos: (opcional, você pode rodar manualmente)
6. Clique com direito → Executar



🔧 ETAPA 6 – (Opcional) Desativar o UAC para testes

⚠ Não recomendado em produção
Pode ser necessário para scripts antigos, MSI silenciosos, etc.

1. Execute regedit
2. Vá até:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

3. Localize:
• EnableLUA
4. Altere de 1 para 0
5. Reinicie o computador



🧪 ETAPA 7 – Usar TEMP confiável para saída dos logs

Evite usar caminhos como C:\Users\JJJR~1.STF\AppData\...

Exemplo com redirecionamento seguro:

set TEMP_PATH=%TEMP%\dism_output.txt
dism.exe /online /english /get-features > "%TEMP_PATH%" 2>&1
notepad "%TEMP_PATH%"




🛠 Diagnóstico pós-execução

Verificar se houve erro silencioso:

echo %ERRORLEVEL%

Código Significado
0 Sucesso
740 Requer elevação
5 Acesso negado
87 Argumento inválido




✅ Conclusão Final

Ao concluir todos os passos acima:
• O usuário logado (ou usado em serviço/agendamento) poderá executar dism.exe com acesso completo
• O WAS da PCSOFT será capaz de chamar dism.exe via diagnóstico interno com “NO PROBLEM”
• Scripts de deploy e verificação funcionarão sem necessidade de intervenção manual ou UAC popup



Abaixo está o script completo em PowerShell para ser executado como Administrador, automatizando todos os passos que você solicitou:



🛠️ Script PowerShell Administrativo

Objetivo: Garantir que o usuário administrador tenha permissão total para executar dism.exe a partir de C:\Windows\System32, incluindo testes, redirecionamento de saída, criação de atalho e agendador de tarefas.



📂 Salve o conteúdo abaixo como:

configurar_dism_administrador.ps1

# ✅ INÍCIO DO SCRIPT: Executar como Administrador

Write-Host "`n🔧 Configurando execução segura de DISM.EXE..." -ForegroundColor Cyan

# 🔹 1. Verifica se está como administrador
If (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Write-Error "❌ Este script precisa ser executado como Administrador. Abortando..."
exit 1
}

# 🔹 2. Exibe grupos do usuário atual
Write-Host "`n👤 Grupos do usuário atual:" -ForegroundColor Yellow
whoami /groups

# 🔹 3. Concede permissão total ao dism.exe para o grupo Administradores
Write-Host "`n🔐 Ajustando permissões no dism.exe..." -ForegroundColor Green
icacls "C:\Windows\System32\dism.exe" /grant Administradores:F

# 🔹 4. Cria diretório de log confiável no TEMP
$logPath = "$env:TEMP\dism_output.txt"
Write-Host "`n📁 Diretório de saída de log: $logPath" -ForegroundColor Blue

# 🔹 5. Executa dism e salva resultado no log
Write-Host "`n▶ Executando dism.exe /online /english /get-features..." -ForegroundColor Magenta
Start-Process "C:\Windows\System32\dism.exe" -ArgumentList "/online", "/english", "/get-features" -Wait -RedirectStandardOutput $logPath -Verb RunAs

# 🔹 6. Abre o resultado em bloco de notas
notepad $logPath

# 🔹 7. Cria atalho na área de trabalho que sempre executa dism como administrador
$shortcutPath = "$env:Public\Desktop\DISM_Admin.lnk"
$target = "C:\Windows\System32\dism.exe"
$wshShell = New-Object -ComObject WScript.Shell
$shortcut = $wshShell.CreateShortcut($shortcutPath)
$shortcut.TargetPath = $target
$shortcut.Arguments = "/online /english /get-features"
$shortcut.WorkingDirectory = "C:\Windows\System32"
$shortcut.IconLocation = "dism.exe,0"
$shortcut.WindowStyle = 1
$shortcut.Description = "Executa DISM como administrador"
$shortcut.Save()
Write-Host "`n🧷 Atalho criado: $shortcutPath" -ForegroundColor Green

# 🔹 8. Cria tarefa agendada com elevação
Write-Host "`n⏱ Criando tarefa no Agendador..." -ForegroundColor Yellow
$action = New-ScheduledTaskAction -Execute "C:\Windows\System32\dism.exe" -Argument "/online /english /get-features"
$principal = New-ScheduledTaskPrincipal -UserId "$env:USERNAME" -LogonType Interactive -RunLevel Highest
$task = New-ScheduledTask -Action $action -Principal $principal -Settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries)
Register-ScheduledTask -TaskName "DISM_Admin" -InputObject $task -Force

Write-Host "`n✅ Script concluído com sucesso!" -ForegroundColor Cyan
Write-Host "📄 Log salvo em: $logPath"




✅ O que este script faz:

Etapa Ação
1 Verifica se o script está rodando como administrador
2 Mostra os grupos do usuário atual
3 Concede permissão total ao dism.exe para os administradores
4 Cria log de saída no diretório TEMP
5 Executa o dism.exe /online /english /get-features com saída redirecionada
6 Abre o log no Notepad automaticamente
7 Cria atalho “DISM_Admin” na área de trabalho com elevação
8 Cria tarefa no Agendador com privilégio elevado




🧪 Como executar:
1. Salve como configurar_dism_administrador.ps1
2. Clique com o botão direito > Executar com PowerShell como Administrador
3. Aguarde a execução
4. Veja o log no Notepad



Abaixo está um manual completo e prático explicando como rodar duas versões do W.A.S. (WebDev Application Server) simultaneamente no mesmo servidor, usando portas diferentes, sem conflito entre os serviços.



📘 MANUAL COMPLETO

Rodar 2 versões do WebDev Application Server (W.A.S.) em paralelo no mesmo servidor

🎯 Exemplo: Rodar WD270Admin.exe (WAS 27) e WD280Admin.exe (WAS 28) no mesmo ambiente Windows



✅ OBJETIVO

Permitir:
• Gerenciar projetos WebDev de versões diferentes no mesmo servidor
• Executar e publicar sites independentes para cada versão
• Garantir que cada versão funcione com suas portas, sem conflitos de recursos ou diagnóstico



🧭 ETAPA 1 – Instalar cada versão do W.A.S.

⚠️ Sempre instale em diretórios separados e com privilégios de administrador.

📦 Instalação recomendada:

Versão Executável admin Pasta sugerida
27 WD270ADMIN.EXE C:\Program Files (x86)\PC SOFT\WEBDEV\WAS270\
28 WD280ADMIN.EXE C:\Program Files (x86)\PC SOFT\WEBDEV\WAS280\




🔁 ETAPA 2 – Executar os dois serviços com portas diferentes

Cada serviço WAS escuta em sua própria porta de controle (usada para HCC/Deploy).
A porta padrão é 4900, mas deve ser alterada para evitar conflito.

🧩 Alterar a porta de uma das versões:
1. Abra o Admin do WAS correspondente (WD270ADMIN.EXE ou WD280ADMIN.EXE)
2. Vá em:
• Menu Configuração do Servidor > Aba Avançado
3. Altere a porta de controle TCP:

Versão Porta Sugerida
27 4900 (mantida)
28 4910 (nova)

4. Clique em Aplicar



🔌 ETAPA 3 – Liberar as portas no Firewall

Execute em PowerShell administrativo:

New-NetFirewallRule -DisplayName "WAS27_TCP_4900" -Direction Inbound -Protocol TCP -LocalPort 4900 -Action Allow
New-NetFirewallRule -DisplayName "WAS28_TCP_4910" -Direction Inbound -Protocol TCP -LocalPort 4910 -Action Allow




🧪 ETAPA 4 – Testar acesso ao painel de diagnóstico de cada versão

No navegador:

Versão URL
27 http://localhost:4900/WD270AWP/WASAdmin.html
28 http://localhost:4910/WD280AWP/WASAdmin.html

Ambos devem abrir sem erro e permitir diagnóstico.



📁 ETAPA 5 – Publicar sites para cada versão separadamente

Ao publicar via IDE WebDev, configure:

Campo Para WAS 27 Para WAS 28
IP/Host localhost ou IP localhost ou IP
Porta TCP 4900 4910
Diretório remoto Ex: C:\Sites27\ Ex: C:\Sites28\
Nome de usuário usuario27 usuario28
Senha (respectiva) (respectiva)




🧰 ETAPA 6 – Validar serviços ativos

PowerShell para verificação rápida:

Get-Service -Name "WD270Admin","WD280Admin"

Verificar portas ativas:

netstat -an | findstr :4900
netstat -an | findstr :4910




🧷 DICAS ADICIONAIS

Dica Importância
✅ Usar pastas de publicação separadas por versão Evita conflitos
✅ Usar contas diferentes no Host Control Center Melhora segurança
⚠ Não publicar o mesmo projeto em duas versões Pode gerar inconsistência
✅ Separar Pools de Aplicativos no IIS (opcional) Maior isolamento




✅ RESULTADO FINAL

Você terá:
• WD270Admin rodando na porta 4900
• WD280Admin rodando na porta 4910
• Sites de versões diferentes funcionando isoladamente
• Diagnóstico “NO PROBLEM” em ambas as versões



Aqui está o manual completo, estruturado e revisado, com todos os passos técnicos para rodar o WebDev Application Server (W.A.S.) em conjunto com o servidor Apache, utilizando proxy reverso, suporte a WebServices, REST, e opções para WebSocket.



📘 MANUAL COMPLETO: Integração do WebDev Application Server (W.A.S.) com Apache

✅ Compatível com Windows e Linux, para hospedar sites WebDev, webservices SOAP/REST e integrar com WebSocket via proxy Apache.



✅ 1. Instalação do W.A.S. (Web Application Server)

📥 Requisitos:
• Baixar a versão correta do W.A.S. da PCSOFT
• Instalar no servidor Windows ou Linux
• O serviço padrão (WDHTTPD) estará acessível em:

http://localhost:80/WDAdminWeb/



📌 Por padrão, o W.A.S. usa o servidor embutido (WDHTTPD.EXE), mas pode ser integrado ao Apache ou IIS.



✅ 2. Configurando o Apache como Proxy Reverso

Usaremos o mod_proxy e mod_proxy_http para redirecionar requisições do Apache para o W.A.S. (porta 8080, por padrão)



🔧 a) Habilitar os módulos no Apache

Para Linux (Ubuntu/Debian):

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo systemctl restart apache2

Para Windows (httpd.conf):

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so




🔧 b) Criar VirtualHost

Adicione ao arquivo de configuração do Apache:

<VirtualHost *:80>
ServerName meusite.com.br

ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

ErrorLog ${APACHE_LOG_DIR}/meusite_error.log
CustomLog ${APACHE_LOG_DIR}/meusite_access.log combined
</VirtualHost>

📌 Este VirtualHost redireciona todas as requisições para o W.A.S. local na porta 8080.



✅ 3. Configurando um Site no WebDev Admin
1. Acesse:

http://localhost:80/WDAdminWeb/


2. Clique em “Adicionar novo site”
3. Configure:
• Nome do site
• Caminho do projeto (.WDWEB)
• Modo AWP ou Sessão
• Aliases de pasta, tempo de sessão, compressão, etc.
4. Clique em Iniciar o site



✅ 4. Configurando WebServices (REST e SOAP)



🌐 a) WebService SOAP
1. No WebDev IDE:
• Crie um projeto do tipo Webservice SOAP
2. Gere o projeto normalmente
3. Publique via Deploy WebDev
4. O endpoint SOAP será:

http://meusite.com.br/servico.awws





🌐 b) WebService REST (com AWP)
1. Crie um site WebDev em modo AWP
2. Adicione procedures REST e marque-as com:
• ✅ “Publicar como WebService REST”
3. Compile e publique
4. O endpoint será algo como:

http://meusite.com.br/ws/meuservico.awp…



📌 AWP = stateless, ideal para REST APIs.



✅ 5. Suporte a WebSocket (Avançado)

O WebDev não possui suporte nativo a WebSocket, mas pode ser integrado via soluções externas.



🧠 a) Usar servidor WebSocket externo (recomendado)
• Crie um servidor Node.js, Python, C# (SignalR) ou similar que escute na porta 8081, por exemplo.

// Node.js exemplo
const ws = require('ws');
const server = new ws.WebSocketServer({ port: 8081 });

server.on('connection', socket => {
socket.send("Bem-vindo ao WebSocket");
});

• No front-end WebDev, use JavaScript:

var socket = new WebSocket("ws://meusite.com.br:8081");
socket.onmessage = function(event) {
alert("Nova mensagem: " + event.data);
};




🔁 b) Alternativa: AJAX Long Polling
• Utilize AJAXExecute() e BrowserExecuteJS() em intervalos para simular uma conexão viva com o servidor

AJAXExecuteAsynchronous(ajaxUpdateProc, updateEvent, callbackProc)

📌 Funciona bem para notificações em tempo real sem WebSocket.



✅ 6. Configurar HTTPS (SSL) no Apache
1. Gere ou compre um certificado (via Let’s Encrypt, por exemplo)
2. Configure VirtualHost SSL:

<VirtualHost *:443>
ServerName meusite.com.br

SSLEngine On
SSLCertificateFile /etc/ssl/certs/site.crt
SSLCertificateKeyFile /etc/ssl/private/site.key

ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>

3. Teste com:

https://meusite.com.br





✅ 7. Recomendações Finais

Recurso Técnica Recomendada
Site WebDev Apache como proxy reverso para W.A.S.
WebService SOAP Criar projeto .awws, publicar no WAS
WebService REST Usar AWP com methods públicos REST
WebSocket Usar servidor externo + JS client no WebDev
HTTPS Certificado SSL no Apache + ProxyPass
Logs Verificar logs no Apache + WAS para debug




✅ Resultado Final

Você terá:
• O Apache escutando na porta 80/443
• Redirecionamento para W.A.S. na porta 8080
• Sites WebDev funcionando com domínio amigável
• Webservices e APIs REST publicadas com endpoints acessíveis
• Possibilidade de usar WebSocket externo para recursos em tempo real



--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 10 juillet 2025 - 02:32
Como usar o W.A.S. 10 com múltiplas instâncias?

https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/4881-rodar-mais-uma-versao-mesmo-servidor-escalando-webdev-4887/read.awp

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 20 septembre 2025 - 14:48
SOLUÇÃO DO ERRO: WWConstante5.js

R.:

Resolveu com isso

Dei direito total na pasta

D:\PC SOFT\WINDEV 2025\Personal\IntegratedWebServer

aparentemente resolveu.

Vê ter acesso irrestrito para o administrador e para o ISS_IUSRS controle total


Detalhe do erro:

The 'http://localhost:8030/MY_FIRST_PAGES_WEB/res/WWConstante5.js' URL does not operate (it does not exist or it returns an error).HTTP code received: 500.

HTTP/1.1 500 Internal Server Error
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
X-SourceFiles: =?UTF-8?B?RDpcTXkgUHJvamVjdHNcTmVsc29uXE15IEV4YW1wbGVzXE15X2ZpcnN0X3BhZ2VzIChBbnN3ZXJzKVxNWV9GSVJTVF9QQUdFU19XRUJccmVzXFdXQ29uc3RhbnRlNS5qcw==?=
Date: Sat, 20 Sep 2025 12:05:51 GMT
Connection: close
Content-Length: 5270

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>IIS 10.0 Detailed Error - 500.19 - Internal Server Error</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;}
code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;}
.config_source code{font-size:.8em;color:#000000;}
pre{margin:0;font-size:1.4em;word-wrap:break-word;}
ul,ol{margin:10px 0 10px 5px;}
ul.first,ol.first{margin-top:5px;}
fieldset{padding:0 15px 10px 15px;word-break:break-all;}
.summary-container fieldset{padding-bottom:5px;margin-top:4px;}
legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;}
legend{color:#333333;;margin:4px 0 8px -12px;_margin-top:0px;
font-weight:bold;font-size:1em;}
a:link,a:visited{color:#007EFF;font-weight:bold;}
a:hover{text-decoration:none;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.4em;margin:10px 0 0 0;color:#CC0000;}
h4{font-size:1.2em;margin:10px 0 5px 0;
}#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS",Verdana,sans-serif;
color:#FFF;background-color:#5C87B2;
}#content{margin:0 0 0 2%;position:relative;}
.summary-container,.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
.content-container p{margin:0 0 10px 0;
}#details-left{width:35%;float:left;margin-right:2%;
}#details-right{width:63%;float:left;overflow:hidden;
}#server_version{width:96%;_height:1px;min-height:1px;margin:0 0 5px 0;padding:11px 2% 8px 2%;color:#FFFFFF;
background-color:#5A7FA5;border-bottom:1px solid #C1CFDD;border-top:1px solid #4A6C8E;font-weight:normal;
font-size:1em;color:#FFF;text-align:right;
}#server_version p{margin:5px 0;}
table{margin:4px 0 4px 0;width:100%;border:none;}
td,th{vertical-align:top;padding:3px 0;text-align:left;font-weight:normal;border:none;}
th{width:30%;text-align:right;padding-right:2%;font-weight:bold;}
thead th{background-color:#ebebeb;width:25%;
}#details-right th{width:20%;}
table tr.alt td,table tr.alt th{}
.highlight-code{color:#CC0000;font-weight:bold;font-style:italic;}
.clear{clear:both;}
.preferred{padding:0 5px 2px 5px;font-weight:normal;background:#006633;color:#FFF;font-size:.8em;}
-->
</style>

</head>
<body>
<div id="content">
<div class="content-container">
<h3>HTTP Error 500.19 - Internal Server Error</h3>
<h4>The requested page cannot be accessed because the related configuration data for the page is invalid.</h4>
</div>

<div class="content-container">
<fieldset><h4>Detailed Error Information:</h4>
<div id="details-left">
<table border="0" cellpadding="0" cellspacing="0">
<tr class="alt"><th>Module</th><td>&nbsp;&nbsp;&nbsp;IIS Web Core</td></tr>
<tr><th>Notification</th><td>&nbsp;&nbsp;&nbsp;BeginRequest</td></tr>
<tr class="alt"><th>Handler</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr>
<tr><th>Error Code</th><td>&nbsp;&nbsp;&nbsp;0x80070003</td></tr>
<tr class="alt"><th>Config Error</th><td>&nbsp;&nbsp;&nbsp;Não é possível ler o arquivo de configuração
</td></tr>
<tr><th>Config File</th><td>&nbsp;&nbsp;&nbsp;\\?\D:\My Projects\Nelson\My Examples\My_first_pages (Answers)\MY_FIRST_PAGES_WEB\web.config</td></tr>
</table>
</div>
<div id="details-right">
<table border="0" cellpadding="0" cellspacing="0">
<tr class="alt"><th>Requested URL</th><td>&nbsp;&nbsp;&nbsp;http://localhost:8030/MY_FIRST_PAGES_WEB/res/WWConstante5.js <tr><th>Physical Path</th><td>&nbsp;&nbsp;&nbsp;D:\My Projects\Nelson\My Examples\My_first_pages (Answers)\MY_FIRST_PAGES_WEB\res\WWConstante5.js</td></tr>
<tr class="alt"><th>Logon Method</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr>
<tr><th>Logon User</th><td>&nbsp;&nbsp;&nbsp;Not yet determined</td></tr>
<tr class="alt"><th>Request Tracing Directory</th><td>&nbsp;&nbsp;&nbsp;Logs\DEFAULT WEB SITE</td></tr>
</table>
<div class="clear"></div>
</div>
</fieldset>
</div>
<div class="config_source content-container">
<fieldset>
<h4>Config Source:</h4>
<pre><code> -1:
<span class="highlight-code"> 0: </span>
</code></pre>
</fieldset>
</div>

<div class="content-container">
<fieldset><h4>More Information:</h4>
This error occurs when there is a problem reading the configuration file for the Web server or Web application. In some cases, the event logs may contain more information about what caused this error.<p></p><p></p>If you see the text "There is a duplicate 'system.web.extensions/scripting/scriptResourceHandler' section defined", this error is because you are running a .NET Framework 3.5-based application in .NET Framework 4. If you are running WebMatrix, to resolve this problem, go to the Settings node to set the .NET Framework version to ".NET 2". You can also remove the extra sections from the web.config file.
<p><a href="https://go.microsoft.com/fwlink/…">View more information &raquo;</a></p>

</fieldset>
</div>
</div>
</body>
</html>

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 24 septembre 2025 - 14:00
Posté le 24 septembre 2025 - 09:36
# Manual de Uso do WAS Orchestrator Kit v5.1

**Autor:** Manus AI

## Índice

1. [Finalidade](#finalidade)
2. [Visão Geral do Kit](#visão-geral-do-kit)
* [Estrutura de Arquivos](#estrutura-de-arquivos)
* [Componentes Principais](#componentes-principais)
3. [Descrição Detalhada dos Scripts](#descrição-detalhada-dos-scripts)
* [`WAS-Orchestrator.ps1`](#was-orchestratorps1)
* [`Metrics-Exporter.ps1`](#metrics-exporterps1)
* [`Metrics-Exporter-Service.ps1`](#metrics-exporter-serviceps1)
* [`Metrics-Exporter-Wrapper.ps1`](#metrics-exporter-wrapperps1)
* [`DR-Plan.ps1`](#dr-planps1)
* [`Sign-All.ps1`](#sign-allps1)
* [`Validate-Install.ps1`](#validate-installps1)
* [`Load-Config.ps1`](#load-configps1)
* [`Orchestrator-API.ps1`](#orchestrator-apips1)
* [`Cert-Watch.ps1`](#cert-watchps1)
4. [Exemplos de Uso](#exemplos-de-uso)
* [Executando o Menu Principal](#executando-o-menu-principal)
* [Instalando o Metrics Exporter como Serviço](#instalando-o-metrics-exporter-como-serviço)
* [Executando um Plano de DR](#executando-um-plano-de-dr)
* [Validando a Integridade do Kit](#validando-a-integridade-do-kit)
* [Gerando Inventário de Certificados](#gerando-inventário-de-certificados)
5. [Conclusão](#conclusão)




## Finalidade

O WAS Orchestrator Kit v5.1 é um conjunto de scripts PowerShell projetado para simplificar e automatizar a manutenção, monitoramento e gerenciamento de ambientes que utilizam o Microsoft Internet Information Services (IIS) e o Windows Activation Service (WAS). Em ambientes de produção, a estabilidade e a segurança desses serviços são cruciais. Este kit visa fornecer aos administradores de sistema e engenheiros de DevOps um conjunto de ferramentas robustas para garantir a operação contínua, a conformidade de segurança e a capacidade de resposta a incidentes, tudo isso através de uma interface de linha de comando ou via API. Ele consolida diversas tarefas rotineiras e complexas em scripts fáceis de usar, reduzindo a chance de erros manuais e otimizando o tempo de gerenciamento. A capacidade de exportar métricas, validar a integridade da instalação e gerenciar certificados são exemplos de como o kit aborda as necessidades críticas de um ambiente de servidor moderno. Além disso, a inclusão de um plano de recuperação de desastres (DR-Plan) e funcionalidades de endurecimento (hardening) demonstra uma abordagem proativa para a resiliência e segurança do sistema. O kit é uma solução abrangente para o gerenciamento eficiente e seguro de infraestruturas baseadas em IIS e WAS, permitindo que as equipes se concentrem em tarefas de maior valor agregado, enquanto as operações de rotina são automatizadas e monitoradas de forma eficaz.




## Visão Geral do Kit

O WAS Orchestrator Kit v5.1 é estruturado de forma modular para facilitar o gerenciamento e a extensão. Ele agrupa scripts, configurações e documentação em diretórios lógicos, permitindo que os administradores naveguem e utilizem as ferramentas de forma eficiente. A arquitetura do kit reflete uma abordagem prática para o gerenciamento de sistemas, onde diferentes aspectos da manutenção e monitoramento são tratados por componentes especializados, mas interconectados. Essa modularidade não apenas melhora a organização, mas também permite que cada script seja focado em uma tarefa específica, tornando o kit mais robusto e fácil de depurar. A inclusão de arquivos de configuração externos, como YAML, demonstra uma preocupação com a flexibilidade e a capacidade de adaptação a diferentes ambientes sem a necessidade de modificar o código-fonte dos scripts. Além disso, a presença de um catálogo de integridade e scripts de assinatura de código ressalta a importância da segurança e da confiança na execução desses utilitários em ambientes de produção. A seguir, detalhamos a estrutura de arquivos e os componentes principais que compõem este kit.

### Estrutura de Arquivos

O kit é organizado em um diretório `Bundle` com as seguintes subpastas:

* **`Bundle/Scripts`**: Este diretório é o coração do kit, contendo todos os scripts PowerShell que realizam as operações de gerenciamento, monitoramento e automação. Cada script é projetado para uma funcionalidade específica, promovendo a modularidade e a reutilização de código. Exemplos incluem scripts para iniciar/parar serviços, exportar métricas, gerenciar certificados e executar planos de recuperação de desastres.
* **`Bundle/Config`**: Armazena arquivos de configuração em formato YAML, como `orchestrator.yaml`. Esses arquivos são utilizados pelos scripts para carregar parâmetros e configurações específicas do ambiente, permitindo uma personalização fácil sem a necessidade de alterar o código dos scripts. Isso é particularmente útil para adaptar o kit a diferentes cenários de implantação.
* **`Bundle/Profiles`**: Contém perfis e definições para funcionalidades específicas, como o `DR-Plan.yaml`, que descreve os passos e recursos envolvidos em um plano de recuperação de desastres. A separação dos perfis de configuração dos scripts principais permite que os administradores definam e gerenciem diferentes estratégias de DR de forma independente.
* **`Bundle/Docs`**: Inclui a documentação básica do kit, como o `README-v5.1.txt`. Embora este manual forneça uma visão mais aprofundada, o README original oferece um ponto de partida rápido para entender o propósito e as funcionalidades básicas do kit.
* **`Bundle/Catalog`**: Contém o arquivo `WAS-CATALOG-SHA256.txt`, que é um catálogo de hashes SHA256 de todos os arquivos do kit. Este arquivo é crucial para a funcionalidade de validação de integridade, garantindo que os scripts e outros componentes não foram adulterados ou corrompidos.

### Componentes Principais

Os principais componentes do kit são os scripts PowerShell, cada um com uma função específica:

* **`WAS-Orchestrator.ps1`**: O script principal que atua como um menu interativo, centralizando o acesso a diversas funcionalidades do kit.
* **`Metrics-Exporter.ps1`**: Exporta métricas de desempenho e status do IIS/WAS/TLS no formato Prometheus, facilitando a integração com sistemas de monitoramento.
* **`Metrics-Exporter-Service.ps1`**: Gerencia a instalação e o ciclo de vida do `Metrics-Exporter.ps1` como um serviço Windows, garantindo sua execução contínua.
* **`Metrics-Exporter-Wrapper.ps1`**: Um script que monitora e reinicia o `Metrics-Exporter.ps1` caso ele pare, assegurando a disponibilidade da exportação de métricas.
* **`DR-Plan.ps1`**: Executa planos de recuperação de desastres definidos em arquivos YAML, automatizando a resposta a falhas.
* **`Sign-All.ps1`**: Assina digitalmente todos os scripts PowerShell do kit, aumentando a segurança e a conformidade em ambientes restritivos.
* **`Validate-Install.ps1`**: Verifica a integridade dos arquivos do kit usando hashes SHA256, detectando qualquer alteração ou corrupção.
* **`Load-Config.ps1`**: Um utilitário para carregar configurações de arquivos YAML, usado por outros scripts para obter parâmetros de execução.
* **`Orchestrator-API.ps1`**: Expõe uma API HTTP local para permitir a interação programática com as funcionalidades do Orchestrator, facilitando a automação e integração.
* **`Cert-Watch.ps1`**: Gera um inventário de certificados SSL/TLS instalados, monitorando suas datas de expiração e alertando sobre certificados próximos ao vencimento.




## Descrição Detalhada dos Scripts

Esta seção oferece uma análise aprofundada de cada script PowerShell incluído no WAS Orchestrator Kit v5.1, detalhando suas funcionalidades, parâmetros e o papel que desempenham no ecossistema de gerenciamento de IIS e WAS. Compreender o propósito e a operação de cada script é fundamental para utilizar o kit de forma eficaz e para solucionar problemas que possam surgir. Cada script foi projetado com um objetivo específico em mente, contribuindo para a completude e a versatilidade do kit. A interconexão entre alguns desses scripts, como o `WAS-Orchestrator.ps1` que invoca outros scripts, demonstra uma arquitetura bem pensada para centralizar o controle e a execução de tarefas. Além disso, a inclusão de mecanismos de logging e tratamento de erros em muitos dos scripts reflete uma preocupação com a robustez e a capacidade de auditoria das operações realizadas. A seguir, exploraremos cada script individualmente, fornecendo informações essenciais para sua compreensão e uso.

### `WAS-Orchestrator.ps1`

O `WAS-Orchestrator.ps1` é o ponto de entrada principal para a maioria das operações manuais do kit. Ele apresenta um menu interativo que permite ao usuário selecionar diversas ações relacionadas ao gerenciamento do IIS e WAS. Este script é ideal para administradores que preferem uma interface baseada em menu para executar tarefas comuns ou para explorar as capacidades do kit. Ele encapsula a lógica de chamada para outros scripts e funções, tornando a experiência do usuário mais coesa e simplificada. A estrutura do menu é intuitiva, guiando o usuário através das opções disponíveis e fornecendo feedback sobre o sucesso ou falha das operações. A capacidade de iniciar e parar serviços, aplicar configurações de segurança e executar diagnósticos a partir de um único ponto centralizado é um dos grandes benefícios deste script.

**Funcionalidades Principais:**

* **Iniciar/Parar IIS**: Controla o serviço `W3SVC` (World Wide Web Publishing Service).
* **Iniciar/Parar WAS**: Controla os serviços `WD*AWP` (Windows Process Activation Service).
* **Safe Test Mode**: Um recurso para abrir portas de firewall específicas (4900, 4901, 4902, 4910, 4920) e desativar o firewall temporariamente para facilitar testes. Inclui uma opção para reverter essas configurações.
* **Hardening Max**: Aplica configurações de segurança a um pool de aplicativos IIS (`WebdevAppPool`), garantindo que ele esteja sempre ativo (`AlwaysRunning`), sem tempo limite de inatividade (`idleTimeout`) ou reinícios periódicos (`recycling.periodicRestart.time`).
* **Diagnósticos**: Realiza verificações de status para o IIS e WAS, e lista o estado de todos os sites configurados no IIS.
* **Executar DR-Plan**: Invoca o script `DR-Plan.ps1` para iniciar um plano de recuperação de desastres.
* **Validação de Integridade**: Invoca o script `Validate-Install.ps1` para verificar se os arquivos do kit foram alterados.
* **Status do Exporter**: Verifica o status do serviço `WASExporter`, que é gerenciado pelo `Metrics-Exporter-Service.ps1`.

**Exemplo de Uso (interativo):**

```powershell
.\WAS-Orchestrator.ps1
```

Ao executar, um menu será exibido, e o usuário poderá digitar o número da opção desejada.

### `Metrics-Exporter.ps1`

O `Metrics-Exporter.ps1` é um componente vital para o monitoramento de ambientes IIS/WAS, projetado para expor métricas no formato compatível com Prometheus. Ele opera como um servidor HTTP leve, ouvindo em uma porta específica (padrão: 4900) e respondendo a requisições `/metrics` com dados de telemetria. A capacidade de integrar essas métricas com sistemas de monitoramento modernos, como Prometheus e Grafana, permite a criação de dashboards detalhados e alertas proativos sobre a saúde e o desempenho dos serviços. Este script coleta informações cruciais sobre o estado dos serviços, a configuração de sites e a segurança de protocolos TLS, fornecendo uma visão abrangente do ambiente.

**Métricas Exportadas:**

* **`was_iis_status`**: Status do serviço IIS (1 para ativo, 0 para parado).
* **`was_service_status{name="<nome_do_serviço_WAS>"}`**: Status de cada serviço WAS individualmente.
* **`was_sites_total`**: Número total de sites IIS configurados.
* **`was_site_status{name="<nome_do_site>"}`**: Status de cada site IIS (1 para iniciado, 0 para parado).
* **`was_https_bindings_total`**: Número total de bindings HTTPS configurados.
* **`was_tls10_enabled`, `was_tls11_enabled`, `was_tls12_enabled`, `was_tls13_enabled`**: Indica se as versões específicas do TLS estão habilitadas no servidor (1 para habilitado, 0 para desabilitado), lendo diretamente do registro do Windows.

**Endpoint Padrão:** `http://localhost:4900/metrics`

**Exemplo de Uso (execução direta):**

```powershell
.\Metrics-Exporter.ps1
```

Este script geralmente é executado como um serviço em segundo plano, gerenciado pelo `Metrics-Exporter-Service.ps1` ou monitorado pelo `Metrics-Exporter-Wrapper.ps1`.

### `Metrics-Exporter-Service.ps1`

Para garantir a execução contínua e confiável do `Metrics-Exporter.ps1`, o `Metrics-Exporter-Service.ps1` oferece funcionalidades para instalar, gerenciar e remover o exportador como um serviço Windows. Ele utiliza o NSSM (Non-Sucking Service Manager), uma ferramenta de terceiros, para transformar o script PowerShell em um serviço persistente. Isso é fundamental para ambientes de produção, onde a disponibilidade do exportador de métricas é crítica para o monitoramento ininterrupto. O script simplifica o processo de configuração do serviço, abstraindo a complexidade da interação direta com o NSSM.

**Ações Suportadas:**

* **`Install`**: Instala o `Metrics-Exporter.ps1` como um serviço Windows (`WASExporter`) e o inicia. Requer que o NSSM esteja disponível no caminho `C:\nssm\nssm.exe`.
* **`Uninstall`**: Para e remove o serviço `WASExporter`.
* **`Start`**: Inicia o serviço `WASExporter`.
* **`Stop`**: Para o serviço `WASExporter`.
* **`Restart`**: Reinicia o serviço `WASExporter`.
* **`Status`**: Exibe o status atual do serviço `WASExporter`.

**Parâmetros:**

* `-Action <Install|Uninstall|Start|Stop|Restart|Status>`: Ação a ser executada no serviço.

**Exemplo de Uso (instalar o serviço):**

```powershell
.\Metrics-Exporter-Service.ps1 -Action Install
```

### `Metrics-Exporter-Wrapper.ps1`

O `Metrics-Exporter-Wrapper.ps1` atua como um guardião para o `Metrics-Exporter.ps1`. Em cenários onde o exportador de métricas não é executado como um serviço Windows (ou mesmo como uma camada adicional de resiliência), este wrapper garante que o `Metrics-Exporter.ps1` esteja sempre em execução. Ele monitora ativamente o processo do exportador e, caso detecte que ele parou, tenta reiniciá-lo automaticamente. Isso é particularmente útil para manter a continuidade da coleta de métricas sem intervenção manual, aumentando a robustez do sistema de monitoramento. Todas as ações do wrapper são logadas em um arquivo `Metrics-Exporter-Wrapper.log` para auditoria e depuração.

**Funcionalidade:**

* Monitora o processo do `Metrics-Exporter.ps1`.
* Reinicia o `Metrics-Exporter.ps1` automaticamente se ele não estiver em execução.
* Registra todas as ações e eventos em um arquivo de log.

**Exemplo de Uso:**

```powershell
.\Metrics-Exporter-Wrapper.ps1
```

Este script é projetado para ser executado continuamente em segundo plano.

### `DR-Plan.ps1`

O `DR-Plan.ps1` é um script crucial para a resiliência do ambiente, permitindo a execução automatizada de um plano de recuperação de desastres. Ele lê as instruções de um arquivo YAML (`DR-Plan.yaml`) e executa ações predefinidas, como iniciar sites críticos e parar outros sites não essenciais, além de reiniciar pools de aplicativos em uma ordem específica. A automação do DR-Plan reduz significativamente o tempo de recuperação (RTO) e minimiza o impacto de falhas, garantindo que os serviços mais importantes sejam restaurados rapidamente. A dependência de um arquivo YAML externo para a configuração do plano oferece flexibilidade, permitindo que diferentes planos de DR sejam definidos e executados conforme a necessidade.

**Funcionalidades:**

* Lê o plano de DR de um arquivo YAML (padrão: `..\Profiles\DR-Plan.yaml`).
* Inicia um site IIS crítico especificado no plano.
* Opcionalmente, para todos os outros sites IIS que não são o site crítico.
* Reinicia pools de aplicativos em uma ordem definida no arquivo YAML.
* Registra todas as ações em um arquivo `DR-Plan.log`.

**Parâmetros:**

* `-PlanFile <caminho_para_yaml>`: Caminho opcional para o arquivo YAML do plano de DR.

**Pré-requisitos:**

* PowerShell 7+ é recomendado para a função `ConvertFrom-Yaml`. O script inclui um fallback básico, mas a funcionalidade completa pode exigir a versão mais recente do PowerShell.

**Exemplo de Uso:**

```powershell
.\DR-Plan.ps1
```

Ou com um arquivo de plano específico:

```powershell
.\DR-Plan.ps1 -PlanFile "C:\MyDRPlans\MyCriticalDR.yaml"
```

### `Sign-All.ps1`

Em ambientes corporativos com políticas de segurança rigorosas, a execução de scripts PowerShell não assinados pode ser bloqueada. O `Sign-All.ps1` resolve esse problema, permitindo que todos os scripts do kit sejam assinados digitalmente usando um certificado Authenticode. Isso garante a autenticidade e a integridade dos scripts, permitindo sua execução em sistemas com políticas de execução restritivas (por exemplo, `AllSigned` ou `RemoteSigned`). A assinatura de código é uma prática de segurança essencial que ajuda a proteger contra a execução de scripts maliciosos ou adulterados, fornecendo uma camada de confiança para os administradores.

**Funcionalidades:**

* Localiza todos os arquivos `.ps1` dentro do `BundlePath` (padrão: `C:\WAS\Bundle`).
* Assina os scripts com um certificado Authenticode especificado.
* Permite a inclusão de um servidor de carimbo de data/hora (timestamp server) para garantir a validade da assinatura mesmo após a expiração do certificado.
* Pode forçar a re-assinatura de scripts já assinados.
* Registra o processo de assinatura em um arquivo de log.

**Parâmetros:**

* `-BundlePath <caminho>`: Caminho para o diretório raiz do kit (padrão: `C:\WAS\Bundle`).
* `-StoreLocation <CurrentUser|LocalMachine>`: Localização do armazenamento de certificados (padrão: `LocalMachine`).
* `-StoreName <nome_do_store>`: Nome do armazenamento de certificados (padrão: `My`).
* `-Thumbprint <thumbprint_do_certificado>`: O thumbprint do certificado de assinatura de código a ser usado. Se não for fornecido, o script tentará selecionar o certificado mais recente de "Code Signing".
* `-TimestampServer <url_do_servidor>`: URL de um servidor de carimbo de data/hora.
* `-Force`: Força a re-assinatura de scripts já assinados.

**Exemplo de Uso (assinando com um thumbprint específico):**

```powershell
.\Sign-All.ps1 -Thumbprint "SEU_THUMBPRINT_DO_CERTIFICADO" -TimestampServer "http://timestamp.digicert.com"
```

### `Validate-Install.ps1`

O `Validate-Install.ps1` é uma ferramenta de auditoria e segurança que verifica a integridade da instalação do WAS Orchestrator Kit. Ele compara os hashes SHA256 de todos os arquivos do kit com um catálogo de hashes pré-calculados (`WAS-CATALOG-SHA256.txt`). Essa validação é crucial para detectar qualquer modificação não autorizada, corrupção de arquivos ou infecção por malware. Em ambientes de alta segurança, a verificação regular da integridade dos arquivos é uma prática recomendada para garantir que as ferramentas de gerenciamento permaneçam confiáveis. O script pode gerar um relatório HTML detalhado, facilitando a visualização e o compartilhamento dos resultados da auditoria.

**Funcionalidades:**

* Calcula o hash SHA256 de cada arquivo do kit.
* Compara os hashes calculados com os hashes listados no `WAS-CATALOG-SHA256.txt`.
* Identifica arquivos com hashes diferentes (`Mismatch`), arquivos ausentes (`Missing`) e arquivos extras (`Extra`).
* Gera um relatório HTML com os resultados da validação, incluindo detalhes sobre quaisquer inconsistências.
* Registra todas as ações em um arquivo de log.

**Parâmetros:**

* `-BundlePath <caminho>`: Caminho para o diretório raiz do kit (padrão: `C:\WAS\Bundle`).
* `-Catalog <caminho>`: Caminho para o arquivo de catálogo SHA256 (padrão: `C:\WAS\Bundle\Catalog\WAS-CATALOG-SHA256.txt`).
* `-Exclude <padrões>`: Padrões de exclusão para arquivos que não devem ser validados (por exemplo, arquivos de log ou o próprio catálogo).
* `-HtmlReport <caminho_do_relatório>`: Caminho para salvar o relatório HTML de validação.
* `-Quiet`: Suprime a saída para o console, apenas registrando no log.

**Exemplo de Uso (gerando relatório HTML):**

```powershell
.\Validate-Install.ps1 -HtmlReport "C:\Reports\IntegrityReport.html"
```

### `Load-Config.ps1`

O `Load-Config.ps1` é um script utilitário interno, projetado para carregar configurações de arquivos YAML. Ele é utilizado por outros scripts do kit, como `DR-Plan.ps1` e `Orchestrator-API.ps1`, para obter parâmetros de configuração de forma estruturada. A utilização de arquivos YAML para configuração externa promove a flexibilidade, permitindo que os administradores ajustem o comportamento dos scripts sem modificar seu código-fonte. O script é inteligente o suficiente para detectar se o PowerShell 7+ está disponível (que inclui o cmdlet `ConvertFrom-Yaml`) e, caso contrário, oferece um fallback básico para parsing de YAML, garantindo compatibilidade com versões mais antigas do PowerShell, embora com suporte limitado a estruturas YAML complexas.

**Funcionalidades:**

* Lê e faz o parse de arquivos de configuração YAML.
* Suporta `ConvertFrom-Yaml` no PowerShell 7+.
* Inclui um fallback básico para parsing de YAML em versões anteriores do PowerShell.

**Parâmetros:**

* `-ConfigPath <caminho_para_yaml>`: Caminho para o arquivo de configuração YAML (padrão: `..\Config\orchestrator.yaml`).

**Exemplo de Uso (interno, geralmente chamado por outros scripts):**

```powershell
$config = .\Load-Config.ps1 -ConfigPath "..\Config\orchestrator.yaml"
```

### `Orchestrator-API.ps1`

O `Orchestrator-API.ps1` estende as capacidades do kit, expondo uma API HTTP local que permite a interação programática com as funcionalidades do Orchestrator. Isso é particularmente útil para integração com sistemas de automação externos, ferramentas de orquestração ou scripts personalizados que precisam acionar ações no ambiente IIS/WAS sem a necessidade de interação manual com o menu do `WAS-Orchestrator.ps1`. A API oferece endpoints para verificar o status dos serviços, iniciar/parar componentes e executar planos de DR ou auditorias, transformando o kit em um recurso programável.

**Endpoints da API:**

* **`/status`**: Retorna o status atual dos serviços IIS e WAS em formato JSON.
* **`/start-iis`**: Inicia o serviço IIS.
* **`/stop-iis`**: Para o serviço IIS.
* **`/start-was`**: Inicia os serviços WAS.
* **`/stop-was`**: Para os serviços WAS.
* **`/dr`**: Executa o `DR-Plan.ps1`.
* **`/audit`**: Executa o `Validate-Install.ps1`.

**Porta Padrão:** Definida no arquivo `orchestrator.yaml` (ex: 4900).

**Exemplo de Uso (execução direta para iniciar a API):**

```powershell
.\Orchestrator-API.ps1
```

Após a execução, a API estará disponível em `http://localhost:<porta_da_api>/`.

### `Cert-Watch.ps1`

O `Cert-Watch.ps1` é uma ferramenta essencial para a gestão proativa de certificados SSL/TLS. Ele escaneia os armazenamentos de certificados configurados no sistema, coleta informações sobre cada certificado (assunto, thumbprint, datas de validade) e calcula os dias restantes para a expiração. Com base em limites configuráveis (dias para aviso e dias para crítico), o script classifica a severidade de cada certificado e gera um relatório HTML detalhado. Este relatório é inestimável para evitar interrupções de serviço causadas por certificados expirados, permitindo que os administradores renovem os certificados com antecedência. A capacidade de gerar um relatório visualmente amigável torna a auditoria de certificados uma tarefa muito mais simples e eficiente.

**Funcionalidades:**

* Escaneia armazenamentos de certificados (configuráveis via `orchestrator.yaml`).
* Coleta detalhes de certificados, incluindo datas de validade.
* Calcula os dias restantes para a expiração.
* Classifica a severidade (OK, Aviso, Crítico) com base em limites configuráveis.
* Gera um relatório HTML com o inventário de certificados, incluindo formatação visual para severidade.

**Parâmetros:**

* `-ConfigPath <caminho_para_yaml>`: Caminho opcional para o arquivo de configuração YAML (padrão: `..\Config\orchestrator.yaml`).

**Configuração (via `orchestrator.yaml`):**

```yaml
certwatch:
warn_days: 30
crit_days: 7
html_report: "C:\Reports\CertInventory.html"
stores:
- location: LocalMachine
name: My
- location: CurrentUser
name: My
```

**Exemplo de Uso:**

```powershell
.\Cert-Watch.ps1
```

Este script gerará um arquivo HTML no caminho especificado na configuração, que pode ser aberto em um navegador para visualização.



## Exemplos de Uso

Esta seção fornece exemplos práticos de como utilizar os scripts do WAS Orchestrator Kit v5.1. Os exemplos são projetados para ilustrar as operações mais comuns e demonstrar a flexibilidade e o poder do kit na automação de tarefas de gerenciamento e monitoramento de IIS/WAS. É importante notar que, para a execução de muitos desses scripts, é necessário ter privilégios de administrador no sistema Windows onde o IIS e o WAS estão instalados. Além disso, a política de execução do PowerShell pode precisar ser ajustada (por exemplo, para `RemoteSigned` ou `Bypass`) para permitir a execução de scripts baixados da internet. Recomenda-se sempre revisar o código dos scripts antes da execução em um ambiente de produção. Os exemplos a seguir cobrem desde a interação com o menu principal até a instalação de serviços e a geração de relatórios, fornecendo um guia passo a passo para as funcionalidades chave do kit.

### Executando o Menu Principal

O script `WAS-Orchestrator.ps1` oferece uma interface de menu interativa para acessar rapidamente as principais funcionalidades do kit. É a maneira mais simples de começar a usar o kit para tarefas manuais.

1. **Abra o PowerShell como Administrador.**
2. **Navegue até o diretório `Bundle/Scripts`** onde o kit foi extraído:

```powershell
cd C:\caminho\para\WAS_Orchestrator_Kit_v5.1_FULL\Bundle\Scripts
```

3. **Execute o script principal:**

```powershell
.\WAS-Orchestrator.ps1
```

4. Um menu será exibido, permitindo que você escolha entre opções como iniciar/parar serviços, executar diagnósticos ou ativar o modo de teste seguro. Digite o número correspondente à opção desejada e pressione Enter.

```
=== WAS Orchestrator v5.1 ===
1. Iniciar IIS
2. Parar IIS
3. Iniciar WAS
4. Parar WAS
5. Safe Test Mode
6. Hardening Max
7. Diagnósticos
8. Executar DR-Plan
9. Validação de Integridade
10. Status do Exporter
0. Sair
Escolha: _
```

### Instalando o Metrics Exporter como Serviço

Para garantir que as métricas do IIS/WAS sejam exportadas continuamente, é recomendável instalar o `Metrics-Exporter.ps1` como um serviço Windows usando o `Metrics-Exporter-Service.ps1`. Este processo requer o NSSM (Non-Sucking Service Manager).

1. **Certifique-se de que o NSSM esteja disponível.** Por padrão, o script espera que o `nssm.exe` esteja em `C:\nssm\nssm.exe`. Se não estiver, você precisará baixá-lo e colocá-lo nesse local ou modificar o script `Metrics-Exporter-Service.ps1` para apontar para o caminho correto.
2. **Abra o PowerShell como Administrador.**
3. **Navegue até o diretório `Bundle/Scripts`**:

```powershell
cd C:\caminho\para\WAS_Orchestrator_Kit_v5.1_FULL\Bundle\Scripts
```

4. **Instale o serviço:**

```powershell
.\Metrics-Exporter-Service.ps1 -Action Install
```

5. Após a instalação, o serviço `WAS Metrics Exporter Service` será iniciado automaticamente. Você pode verificar seu status através do Gerenciador de Serviços do Windows ou usando o próprio script:

```powershell
.\Metrics-Exporter-Service.ps1 -Action Status
```

6. Para desinstalar o serviço, use:

```powershell
.\Metrics-Exporter-Service.ps1 -Action Uninstall
```

### Executando um Plano de DR

O `DR-Plan.ps1` permite automatizar a execução de um plano de recuperação de desastres definido em um arquivo YAML. Este exemplo assume que você tem um `DR-Plan.yaml` configurado no diretório `Bundle/Profiles`.

1. **Abra o PowerShell como Administrador.**
2. **Navegue até o diretório `Bundle/Scripts`**:

```powershell
cd C:\caminho\para\WAS_Orchestrator_Kit_v5.1_FULL\Bundle\Scripts
```

3. **Execute o script `DR-Plan.ps1`:**

```powershell
.\DR-Plan.ps1
```

O script lerá o `DR-Plan.yaml` padrão e executará as ações definidas (iniciar site crítico, parar outros sites, reiniciar pools de aplicativos).

4. Você pode especificar um arquivo de plano diferente, se necessário:

```powershell
.\DR-Plan.ps1 -PlanFile "C:\MyCustomPlans\EmergencyDR.yaml"
```

### Validando a Integridade do Kit

Para garantir que os arquivos do kit não foram adulterados, o `Validate-Install.ps1` pode ser usado para verificar sua integridade. Ele pode gerar um relatório HTML para fácil visualização.

1. **Abra o PowerShell como Administrador.**
2. **Navegue até o diretório `Bundle/Scripts`**:

```powershell
cd C:\caminho\para\WAS_Orchestrator_Kit_v5.1_FULL\Bundle\Scripts
```

3. **Execute o script `Validate-Install.ps1` para gerar um relatório HTML:**

```powershell
.\Validate-Install.ps1 -HtmlReport "C:\Reports\IntegrityReport_$(Get-Date -Format 'yyyyMMdd_HHmmss').html"
```

4. Um arquivo HTML será gerado no caminho especificado (neste caso, `C:\Reports\`). Abra este arquivo em um navegador para visualizar o relatório de integridade, que detalhará quaisquer arquivos ausentes, extras ou com hashes inconsistentes.

### Gerando Inventário de Certificados

O `Cert-Watch.ps1` é útil para monitorar a validade dos certificados SSL/TLS instalados no sistema, gerando um relatório HTML que destaca certificados próximos da expiração.

1. **Abra o PowerShell como Administrador.**
2. **Navegue até o diretório `Bundle/Scripts`**:

```powershell
cd C:\caminho\para\WAS_Orchestrator_Kit_v5.1_FULL\Bundle\Scripts
```

3. **Execute o script `Cert-Watch.ps1`:**

```powershell
.\Cert-Watch.ps1
```

4. O script gerará um arquivo HTML (caminho configurado em `orchestrator.yaml`, por padrão `C:\Reports\CertInventory.html`) com uma tabela listando todos os certificados encontrados, suas datas de validade e a severidade (OK, Aviso, Crítico) com base nos dias restantes para expiração. Abra este arquivo em um navegador para revisar o inventário.



## Conclusão

O WAS Orchestrator Kit v5.1 representa uma solução abrangente e bem estruturada para o gerenciamento e monitoramento de ambientes IIS e WAS. Através de uma coleção de scripts PowerShell modulares, o kit aborda uma vasta gama de necessidades operacionais, desde o controle básico de serviços até funcionalidades avançadas como exportação de métricas para sistemas de monitoramento, automação de planos de recuperação de desastres, validação de integridade de arquivos e gerenciamento proativo de certificados SSL/TLS. A análise estática dos scripts revelou uma arquitetura robusta, com clara separação de responsabilidades e a inclusão de boas práticas de segurança, como a assinatura de código e a verificação de integridade. A disponibilidade de uma API HTTP local expande ainda mais as possibilidades de automação e integração com outras ferramentas de orquestração, tornando o kit uma peça valiosa em qualquer pipeline de DevOps ou estratégia de gerenciamento de infraestrutura. Embora a dependência de ferramentas externas como NSSM e a preferência por PowerShell 7+ para certas funcionalidades sejam pontos a serem considerados, o kit oferece soluções eficazes para mitigar esses aspectos, como o fallback básico para parsing de YAML. Em suma, o WAS Orchestrator Kit v5.1 é uma ferramenta poderosa que capacita administradores e engenheiros a manterem seus ambientes IIS/WAS seguros, eficientes e resilientes, minimizando a intervenção manual e otimizando a resposta a eventos críticos. Sua completude e a profundidade de suas funcionalidades o tornam um recurso indispensável para qualquer equipe que gerencie esses serviços em escala.


Download

https://repository.windev.com/resource.awp…

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 24 septembre 2025 - 14:10
Boa! Agora ficou claro o que você está procurando:

No Microsoft IIS (Internet Information Services), o recurso Mapeamentos de Manipulador (Handler Mappings) é fundamental para dizer ao servidor como ele deve processar cada tipo de requisição que chega.



📌 O que são os Mapeamentos de Manipulador

Eles definem qual módulo do IIS (ou programa externo) será responsável por tratar requisições com base em:
• Extensão de arquivo (ex: .aspx, .php, .jpg, .css)
• Caminho da URL (ex: /api/*, /site/admin/*)
• Verbo HTTP (GET, POST, PUT, DELETE etc.)

Em outras palavras: o IIS recebe uma requisição → consulta os Handler Mappings → envia a requisição para o módulo ou programa correto.



📂 Exemplos de uso comum
1. ASP.NET
• Arquivos .aspx → processados pelo manipulador PageHandlerFactory-Integrated.
• Arquivos .ashx (handlers customizados) → processados por SimpleHandlerFactory-Integrated.
2. Arquivos estáticos
• .html, .css, .js, .jpg → manipulados pelo módulo StaticFile.
3. Linguagens adicionais
• Se você instalar suporte a PHP no IIS, ele cria um handler para .php, apontando para php-cgi.exe.
• Para Python (via FastCGI), um handler pode mapear .py para o interpretador.



⚙️ Onde configurar

No IIS Manager:
1. Selecione seu site.
2. Abra a opção Mapeamentos de Manipulador (Handler Mappings).
3. Ali você pode:
• Adicionar Script Map → aponta uma extensão para um executável (ex: .php → php-cgi.exe).
• Adicionar Module Mapping → vincula uma extensão a um módulo do IIS.
• Editar permissões de acesso (ex: GET, POST, HEAD).



🔎 Exemplo no web.config

<configuration>
<system.webServer>
<handlers>
<!-- Mapeamento para ASPX -->
<add name="ASP.NET-PageHandler"
path="*.aspx"
verb="*"
type="System.Web.UI.PageHandlerFactory"
resourceType="Unspecified"
requireAccess="Script" />

<!-- Mapeamento para API customizada -->
<add name="APIHandler"
path="api/*.svc"
verb="*"
type="Namespace.APIHandler, MyApp"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
</system.webServer>
</configuration>




✅ Resumindo

Os Mapeamentos de Manipulador no IIS:
• Definem quem processa cada tipo de requisição.
• São essenciais para rodar ASP.NET, PHP, Python, ou qualquer aplicação dinâmica.
• Podem ser configurados via IIS Manager ou diretamente no web.config.



Boa! Para sites WEBDEV no IIS, o que muda nos Mapeamentos de Manipulador depende do modo:



1) Site AWP (Active WebDev Pages)

Precisa mapear a extensão .awp para o executável do motor AWP da versão instalada.

Passos (IIS 7+ / 8 / 10):
1. Em ISAPI and CGI Restrictions, Permitir os executáveis do AWP da sua versão (ex.: WD300AWP.EXE e WD300INSTAWP.EXE). 
2. Em Handler Mappings do site, Add Script Map:
• Request path: *.awp
• Executable: caminho completo do WDxxxAWP.EXE (ex.: …\Programs\ENGINE\WINDOWS\AWP\WD300AWP.EXE) — evite caminhos com espaço; se houver, coloque entre aspas. 
3. Em Edit Feature Permissions para esse handler, marque Read, Script e Execute. 
4. Em Request Restrictions do handler .awp, deixe as restrições de mapeamento desmarcadas (não exigir arquivo físico). Isso é recomendado pela doc de URL Rewriting para AWP/IIS. 

Resultado: qualquer URL terminando em .awp será processada pelo motor AWP do WEBDEV no IIS.



2) Site Session (dinâmico em modo sessão)

Em geral não cria mapeamento específico de extensão: o site roda pelo WEBDEV Application Server integrado ao IIS no “servidor virtual” correspondente. O essencial é habilitar o Application Server para o site/virtual server no Administrador do WEBDEV. 

Checklist para Session mode:
• No WEBDEV Administrator > Advanced > Server > Virtual servers, marque o(s) site(s) IIS onde o Application Server deve atuar. 
• Os mapeamentos padrão do IIS (arquivos estáticos, etc.) permanecem; você não precisa de um handler tipo *.awp (isso é só para AWP/CGI). As demais configurações de handler do IIS seguem a documentação do próprio IIS (<system.webServer><handlers>…) se você tiver necessidades especiais. 



Dicas rápidas
• Versão correta: use o executável WDxxxAWP.EXE que corresponda à sua versão (ex.: 26 = WD260AWP.EXE, 30 = WD300AWP.EXE). 
• Sem “arquivo deve existir”: para .awp, não exija arquivo físico; muitas rotas AWP são virtuais. 
• HTTPS/ARR/Rewrite: se usar proxy/Reescrita de URL, mantenha o handler .awp ativo e as regras de rewrite respeitando a extensão. 

Perfeito, Adriano! Segue o passo-a-passo objetivo para IIS 10 com sites WEBDEV nos dois modos — AWP e Session — focando em Mapeamentos de Manipulador (Handler Mappings) e itens que costumam “pegar”.



A) Site WEBDEV em AWP (Active WebDev Pages)

1) Permitir os executáveis AWP no IIS
• No IIS Manager → ISAPI and CGI Restrictions → Allow para o motor da sua versão (ex.: WD300AWP.EXE). 

2) Criar o handler para .awp
• No site → Handler Mappings → Add Script Map…
• Request path: *.awp
• Executable: caminho completo do motor AWP (ex.: C:\...\WEBDEV\Programs\Engine\Windows\AWP\WD300AWP.EXE)
• Name: algo como WEBDEV-AWP
• Em Edit Feature Permissions… marque Read, Script e Execute. 

3) Não exigir arquivo físico (crítico)
• No handler *.awp → Edit… → Request Restrictions…
• DESMARQUE “File or folder”/“Check that file exists”. (URLs AWP podem ser virtuais; se exigir arquivo, o rewrite não funciona). 

4) (Opcional) Alias e imagens
• Em alguns guias, cria-se um Virtual Directory WD300AWP apontando para Programs\AWP (perfis de compatibilidade). Conceda Read e Execute. 

5) Diagnóstico
• No WEBDEV Administrator (Servidor) use o Diagnostic do virtual server para validar:
• “.awp associado ao motor da versão” e “Check existence of file = NO”. 

Exemplo mínimo de web.config (mantendo controle pelo IIS)

<configuration>
<system.webServer>
<handlers>
<!-- Handler para AWP -->
<add name="WEBDEV-AWP"
path="*.awp"
verb="*"
modules="IsapiModule"
scriptProcessor="C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE"
resourceType="Unspecified" />
</handlers>

<!-- Ex.: se usar URL Rewrite no IIS -->
<rewrite>
<rules>
<rule name="AWP nice URLs" stopProcessing="true">
<match url="^app/(.*)$" />
<action type="Rewrite" url="/index.awp?route={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

(Conceito <handlers> e criação de handlers no IIS: docs oficiais do IIS. )



B) Site WEBDEV em Session (dinâmico “puro”)

No modo Session, você não cria um handler específico para uma extensão como .awp. O processamento dinâmico vem do WEBDEV Application Server acoplado ao seu site IIS (virtual server). O que você precisa é habilitar o Application Server no(s) virtual server(s). 

Passos
1. Abra o WEBDEV Administrator (no servidor).
2. Advanced → Server… → Virtual servers… → marque o(s) site(s)/binding(s) do IIS que devem rodar sites WEBDEV.
3. Salve e rode o diagnóstico para confirmar. 

Os handlers padrão do IIS (arquivos estáticos etc.) continuam; você só adiciona handlers extras se tiver necessidades específicas (ex.: FastCGI de PHP junto, um endpoint próprio, WebDAV, etc.). 



Dicas de campo (que evitam dor de cabeça)
• Versão certa do motor: se estiver em WEBDEV 26/28/30/2025, use o WDxxxAWP.EXE correspondente (ex.: 30 → WD300AWP.EXE). 
• Rewrite no IIS: para rotas bonitas, use o URL Rewrite Module; ele convive bem com AWP e ASP.NET, desde que o handler .awp não exija arquivo físico. 
• Diagnóstico da PC SOFT: ele aponta exatamente o que está faltando (associação .awp, permissões, alias, etc.). 



Show, Adriano! Segue o checklist imprimível + um modelo de web.config para você usar como guia no IIS com WEBDEV.



📑 Checklist – IIS + WEBDEV (Session e AWP)

🔹 Pré-requisitos
• IIS instalado com ISAPI Extensions e ISAPI Filters habilitados.
• WEBDEV Application Server instalado (mesma versão do WEBDEV do projeto).
• Permissões de execução concedidas ao IIS (Read, Script, Execute).



🟢 Para sites AWP
1. Permitir ISAPI executável
• IIS Manager → ISAPI and CGI Restrictions → Allow para WDxxxAWP.EXE.
• (xxx = versão, ex.: WD300AWP.EXE para WEBDEV 30).
2. Adicionar Handler Map
• IIS Manager → Site → Handler Mappings → Add Script Map…
• Request path: *.awp
• Executable: C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE
• Name: WEBDEV-AWP
3. Editar Permissões
• No handler WEBDEV-AWP → Edit Feature Permissions…
• Marcar: Read, Script, Execute.
4. Remover exigência de arquivo físico
• Ainda no handler *.awp → Request Restrictions…
• Aba Mapping → desmarcar “File or folder must exist”.
5. (Opcional) Criar Virtual Directory
• Alias: WDxxxAWP → aponta para …\Programs\Engine\Windows\AWP
• Permissões: Read + Execute.
6. Testar diagnóstico
• WEBDEV Administrator → Virtual servers → rodar diagnóstico.
• Verificar: “AWP associated” e “File existence check = NO”.



🟢 Para sites Session
1. Habilitar no Virtual Server
• WEBDEV Administrator → Advanced → Server → Virtual servers…
• Marcar o site IIS onde seu app roda.
2. Rodar diagnóstico
• Verificar: Session mode enabled, Application Server ativo.
3. Handlers padrão do IIS
• Não precisa criar handler específico (ex.: .awp).
• IIS cuida de arquivos estáticos; o motor do WEBDEV atende as requisições session.



📂 Modelo de web.config – AWP + Rewrite

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<!-- Handler para páginas AWP -->
<handlers>
<add name="WEBDEV-AWP"
path="*.awp"
verb="*"
modules="IsapiModule"
scriptProcessor="C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE"
resourceType="Unspecified" />
</handlers>

<!-- Exemplo de regra de URL Rewrite -->
<rewrite>
<rules>
<rule name="AWP nice URLs" stopProcessing="true">
<match url="^app/(.*)$" />
<action type="Rewrite" url="/index.awp?route={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>



Perfeito, Adriano — segue uma tabela “mão-na-massa” com os handlers que você normalmente encontra no IIS 10 (Windows Server 2016+), separados por contexto/feature. No fim, incluí o W.A.S. (WEBDEV Application Server) para AWP.

Observação: a lista exata varia conforme os Role Services instalados (ASP.NET 4.x, CGI/ISAPI, WebDAV, ASP.NET Core, URL Rewrite, etc.). Para extrair o que está ativo no seu servidor:
appcmd list config -section:system.webServer/handlers (lê do applicationHost.config). 

Handlers comuns do IIS 10 (por feature)

Contexto / Feature Nome do handler (IIS) Path / Extensão Módulo / Tipo Anotações
Núcleo (estático) StaticFile * / extensões conhecidas StaticFileModule Entrega arquivos estáticos; interfere se você espera que outro handler processe default docs sem extensão. 
Núcleo (verbo HTTP) OPTIONSVerbHandler * (módulo nativo de protocolo) Trata requisições OPTIONS por padrão. 
Núcleo (verbo HTTP) TRACEVerbHandler * (módulo nativo de protocolo) Trata TRACE (muitos desabilitam em produção). 
CGI (opcional) CGI-exe *.exe CgiModule Necessário quando hospeda apps via CGI. 
ISAPI (opcional) ISAPI-dll *.dll IsapiModule Para extensões ISAPI; às vezes aparece desabilitado até permitir Execute. 
WebDAV (opcional) WebDAV * (vários verbos) WebDAVModule Publicação WebDAV; pode bloquear PUT/DELETE em apps — muitos removem no site/app. 
ASP.NET 4.x (Integrated) PageHandlerFactory-Integrated *.aspx ManagedPipelineHandler Páginas Web Forms. 
ASP.NET 4.x (Integrated) SimpleHandlerFactory-Integrated *.ashx ManagedPipelineHandler HTTP Handlers customizados. 
ASP.NET 4.x (Integrated) WebServiceHandlerFactory-Integrated *.asmx ManagedPipelineHandler Web Services ASMX. 
ASP.NET 4.x (Integrated) ExtensionlessUrlHandler-Integrated-4.0 URLs sem extensão ManagedPipelineHandler Roteia URLs sem extensão para ASP.NET 4.x. 
ASP.NET Core (opcional) aspNetCore * (aplicação) AspNetCoreModuleV2 Handler do ANCM (Hosting Bundle). Se faltando → erro “bad module”. 
URL Rewrite (opcional) (regra, não “handler”) — RewriteModule (módulo) Funciona como módulo; as regras ficam em <system.webServer><rewrite>. 

WEBDEV / W.A.S. (PC SOFT) — modo AWP

Contexto / Feature Nome do handler (sugestão) Path / Extensão Módulo / Tipo Anotações
WEBDEV AWP WEBDEV-AWP *.awp IsapiModule → WDxxxAWP.EXE Criado via Add Script Map apontando para WD300AWP.EXE (ou sua versão). Desmarque “Check that file exists”. 

Para Session mode (dinâmico “puro” do WEBDEV), normalmente não se cria handler por extensão; o atendimento passa pelo WEBDEV Application Server vinculado ao site/virtual server, e você usa os handlers padrão do IIS para estáticos e o pipeline do W.A.S. para o app. (A documentação da PC SOFT concentra a necessidade de handler no AWP/CGI). 


Show! Vou seguir com o que faltava: scripts prontos (AppCmd + PowerShell) para auditar, comparar e aplicar um baseline de handlers no IIS 10 — já incluindo o WEBDEV AWP (W.A.S.) — e dicas de hardening. Tudo abaixo é “colar e usar”.



1) Exportar os handlers atuais (auditoria)

Via AppCmd (XML)

REM Executar em um PowerShell/cmd elevado (Administrador)
cd %windir%\system32\inetsrv
appcmd list config -section:system.webServer/handlers /config:* > C:\temp\handlers_current.xml

REM Por site específico:
appcmd list config "Default Web Site" -section:system.webServer/handlers /config:* > C:\temp\handlers_current_default.xml

Via PowerShell (CSV “resumido”)

$site="Default Web Site" # troque se quiser
$xml = & $env:windir\system32\inetsrv\appcmd.exe list config "$site" -section:system.webServer/handlers /config:*
[xml]$doc = $xml
$items = $doc.configuration.'system.webServer'.handlers.add
$items | Select-Object name,path,verb,modules,type,scriptProcessor,resourceType,requireAccess |
Export-Csv C:\temp\handlers_current_$($site -replace ' ','_').csv -NoTypeInformation -Encoding UTF8




2) Baseline seguro (padrões + AWP)

Ajuste caminhos de WEBDEV abaixo (ex.: 30 → WD300AWP.EXE).

2.1 Remover potenciais “intrusos” (opcional, recomendado)

cd %windir%\system32\inetsrv

REM Desabilitar/Remover WebDAV no site (bloqueia PUT/DELETE indevidos)
appcmd set config "Default Web Site" -section:handlers /-"[name='WebDAV'']"
appcmd delete module WebDAVModule

REM Desabilitar TRACE (segurança)
appcmd set config -section:httpProtocol /allowKeepAlive:"True" REM só referência; TRACE é controlado via requestFiltering/trace
appcmd set config -section:requestFiltering /allowDoubleEscaping:"False"
REM (Se existir TRACEVerbHandler, remova-o do site)
appcmd set config "Default Web Site" -section:handlers /-"[name='TRACEVerbHandler']"

2.2 Garantir os básicos (StaticFile, OPTIONS etc.)

REM StaticFile (se foi removido por engano)
appcmd set config "Default Web Site" -section:handlers /+"[name='StaticFile',path:'*',verb:'GET,HEAD,POST',modules:'StaticFileModule',resourceType:'Either']"

REM OPTIONS (útil p/ CORS)
appcmd set config "Default Web Site" -section:handlers /+"[name='OPTIONSVerbHandler',path:'*',verb:'OPTIONS',modules:'ProtocolSupportModule']"

2.3 Adicionar o handler WEBDEV-AWP

Troque o caminho do scriptProcessor para a sua versão (ex.: WEBDEV 30).

cd %windir%\system32\inetsrv

REM 1) Permitir o executável AWP em ISAPI/CGI Restrictions
appcmd set config -section:isapiCgiRestriction /+"[path='C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE',description='WEBDEV AWP 30',allowed='True']"

REM 2) Adicionar o handler *.awp no site (NÃO exigir arquivo físico)
appcmd set config "Default Web Site" -section:handlers /+"[name='WEBDEV-AWP',path:'*.awp',verb:'*',modules:'IsapiModule',scriptProcessor:'C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE',resourceType:'Unspecified',requireAccess:'Script']"

Por que resourceType='Unspecified'?
Para o IIS não exigir arquivo físico (URLs AWP podem ser virtuais/roteadas).
requireAccess='Script' garante permissão de execução.



3) Versões do WEBDEV (atalhos de caminho)
• WEBDEV 26 → C:\PC SOFT\WEBDEV 26\Programs\Engine\Windows\AWP\WD260AWP.EXE
• WEBDEV 28 → ...\WD280AWP.EXE
• WEBDEV 30 → ...\WD300AWP.EXE
• WEBDEV 2025 → ajuste conforme instalação (WD310AWP.EXE, se aplicável)

Se preferir manter um alias (Virtual Directory) como WD300AWP\, crie-o apontando para essa pasta e dê Read+Execute.



4) Aplicar handlers por application (não no site todo)

Se quiser o handler .awp só para um app/virtual dir dentro do site:

appcmd set config "Default Web Site/MinhaApp" -section:handlers /+"[name='WEBDEV-AWP',path:'*.awp',verb:'*',modules:'IsapiModule',scriptProcessor:'C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE',resourceType:'Unspecified',requireAccess:'Script']"




5) Comparar e sincronizar (PowerShell “diff” simples)

$site = "Default Web Site"
$exportPath = "C:\temp"
$appcmd = Join-Path $env:windir "System32\inetsrv\appcmd.exe"

# Exporta atual
$xml = & $appcmd list config "$site" -section:system.webServer/handlers /config:*
[xml]$doc = $xml
$cur = $doc.configuration.'system.webServer'.handlers.add | ForEach-Object {
[pscustomobject]@{
name = $_.name; path = $_.path; verb = $_.verb; modules = $_.modules
type = $_.type; scriptProcessor = $_.scriptProcessor
resourceType = $_.resourceType; requireAccess = $_.requireAccess
}
}

# Define itens mínimos do baseline (ajuste conforme seu padrão)
$baseline = @(
@{name='StaticFile'; path='*'; verb='GET,HEAD,POST'; modules='StaticFileModule'; resourceType='Either'; requireAccess=$null; type=$null; scriptProcessor=$null},
@{name='OPTIONSVerbHandler'; path='*'; verb='OPTIONS'; modules='ProtocolSupportModule'; resourceType=$null; requireAccess=$null; type=$null; scriptProcessor=$null},
@{name='WEBDEV-AWP'; path='*.awp'; verb='*'; modules='IsapiModule'; scriptProcessor='C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE'; resourceType='Unspecified'; requireAccess='Script'; type=$null}
)

# Diff: o que falta do baseline?
$need = foreach($b in $baseline){
if(-not ($cur | Where-Object { $_.name -eq $b.name })) { [pscustomobject]$b }
}
$need | Format-Table

# Aplicar o que falta
foreach($n in $need){
$args = "/+`"[name='$($n.name)',path='$($n.path)',verb='$($n.verb)',modules='$($n.modules)'"
if($n.type){ $args += ",type='$($n.type)'" }
if($n.scriptProcessor){ $args += ",scriptProcessor='$($n.scriptProcessor)'" }
if($n.resourceType){ $args += ",resourceType='$($n.resourceType)'" }
if($n.requireAccess){ $args += ",requireAccess='$($n.requireAccess)'" }
$args += "]`""
& $appcmd set config "$site" -section:system.webServer/handlers $args
}




6) web.config mínimo (apenas para AWP neste app)

Use somente se quiser controlar por app/virtual dir (não no nível do site inteiro).

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="WEBDEV-AWP"
path="*.awp"
verb="*"
modules="IsapiModule"
scriptProcessor="C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE"
resourceType="Unspecified"
requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>




7) Testes rápidos

REM Ver se o handler está visível
appcmd list config "Default Web Site" -section:system.webServer/handlers

REM Teste HTTP local (PowerShell)
powershell -Command "Invoke-WebRequest http://localhost/index.awp -UseBasicParsing | Select-Object StatusCode,Headers | Format-List"




8) Boas práticas (hardening e estabilidade)
• Desinstale/Remova WebDAV se não usa (módulo e handler).
• Desabilite TRACE e verifique verbos permitidos.
• Mantenha URL Rewrite se usar rotas amigáveis; não marque “arquivo deve existir”.
• Logue 404/500 e ative Failed Request Tracing durante setup.
• Em produção, limite handlers ao necessário (evita interferências).
• Padronize o caminho do WDxxxAWP.EXE e versionamento (documente).

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 24 septembre 2025 - 14:12
Gerei os dois arquivos:
1. Apply-WebDevAWP-IIS10.ps1
Baixar o PowerShell
2. Baseline-IIS10-Handlers.xml
Baixar o XML

Dicas rápidas:
• No .ps1, edite no topo: $SiteName, $WebDevAwpExe, $WebDevAwpDescription, $Harden, $ExportFolder.
• Rode em PowerShell elevado (Administrador). Ele exporta o estado “before/after”, remove WebDAV/TRACE (se Harden=$true), garante StaticFile e OPTIONS e adiciona o handler WEBDEV-AWP + ISAPI/CGI Restriction.
• No .xml, ajuste o caminho do scriptProcessor para a sua versão do WEBDEV (ex.: WD260AWP.EXE, WD280AWP.EXE, WD300AWP.EXE).

<#
Apply-WebDevAWP-IIS10.ps1
Purpose: Apply a safe baseline of IIS 10 handlers on a specific site and add WEBDEV AWP handler.
Tested on: Windows Server 2016/2019/2022 with IIS 10
Run as: Administrator (elevated PowerShell)
#>

[CmdletBinding()]
param(
# === VARIABLES YOU SHOULD REVIEW ===
[string]$SiteName = "Default Web Site",

# Full path to your WEBDEV AWP engine executable (adjust version/path)
[string]$WebDevAwpExe = "C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE",

# ISAPI/CGI restriction friendly description
[string]$WebDevAwpDescription = "WEBDEV AWP 30",

# Optional: apply hardening (remove WebDAV handler/module and TRACE handler entry if present)
[bool]$Harden = $true,

# Export folder to dump current/before/after state
[string]$ExportFolder = "C:\temp"
)

# --- PRECHECKS ---
$ErrorActionPreference = "Stop"
$appcmd = Join-Path $env:WINDIR "System32\inetsrv\appcmd.exe"

if (-not (Test-Path $appcmd)) {
throw "appcmd.exe not found at $appcmd. Ensure IIS Management Scripts and Tools are installed."
}
if (-not (Test-Path $ExportFolder)) {
New-Item -Path $ExportFolder -ItemType Directory -Force | Out-Null
}

Write-Host "== Apply-WebDevAWP-IIS10 ==" -ForegroundColor Cyan
Write-Host "Site: $SiteName"
Write-Host "AWP: $WebDevAwpExe"
Write-Host "Harden: $Harden"
Write-Host ""

function Export-Handlers([string]$label) {
$out = Join-Path $ExportFolder ("handlers_{0}_{1}.xml" -f ($SiteName -replace '[^\w-]','_'), $label)
& $appcmd list config "$SiteName" -section:system.webServer/handlers /config:* | Out-File -FilePath $out -Encoding UTF8
Write-Host "Exported handlers ($label) to $out"
}

function Handler-Exists([string]$name) {
$xml = & $appcmd list config "$SiteName" -section:system.webServer/handlers /config:*
[xml]$doc = $xml
$doc.configuration.'system.webServer'.handlers.add | Where-Object { $_.name -eq $name } | ForEach-Object { return $true }
return $false
}

function Remove-Handler([string]$name) {
if (Handler-Exists $name) {
& $appcmd set config "$SiteName" -section:handlers "/-`"[name='$name']`"" | Out-Null
Write-Host "Removed handler: $name"
}
}

function Add-Handler([hashtable]$h) {
$name = $h.name
if (Handler-Exists $name) {
Write-Host "Handler already exists: $name" -ForegroundColor Yellow
return
}
$args = "/+`"[name='{0}'" -f $h.name
if ($h.path) { $args += ",path='{0}'" -f $h.path }
if ($h.verb) { $args += ",verb='{0}'" -f $h.verb }
if ($h.modules) { $args += ",modules='{0}'" -f $h.modules }
if ($h.type) { $args += ",type='{0}'" -f $h.type }
if ($h.scriptProcessor) { $args += ",scriptProcessor='{0}'" -f $h.scriptProcessor }
if ($h.resourceType) { $args += ",resourceType='{0}'" -f $h.resourceType }
if ($h.requireAccess) { $args += ",requireAccess='{0}'" -f $h.requireAccess }
$args += "]`""
& $appcmd set config "$SiteName" -section:system.webServer/handlers $args | Out-Null
Write-Host "Added handler: $name"
}

function IsapiCgiRestriction-EnsureAllowed([string]$exePath, [string]$desc) {
# Check if existing restriction matches path
$current = & $appcmd list config -section:isapiCgiRestriction
if ($current -match [Regex]::Escape($exePath)) {
Write-Host "ISAPI/CGI Restriction already present for: $exePath" -ForegroundColor Yellow
# Ensure allowed true
& $appcmd set config -section:isapiCgiRestriction "/[path='$exePath'].allowed:`"True`"" | Out-Null
return
}
& $appcmd set config -section:isapiCgiRestriction "/+`"[path='$exePath',description='$desc',allowed='True']`"" | Out-Null
Write-Host "ISAPI/CGI Restriction added: $exePath"
}

function Remove-Module([string]$moduleName) {
# Removes a module entry from applicationHost.config (global) if present
$modulesList = & $appcmd list modules
if ($modulesList -match ("Module `"*{0}`"* " -f [Regex]::Escape($moduleName))) {
& $appcmd delete module $moduleName | Out-Null
Write-Host "Deleted global module: $moduleName"
} else {
Write-Host "Global module not present: $moduleName" -ForegroundColor Yellow
}
}

# --- 1) Export BEFORE ---
Export-Handlers -label "before"

# --- 2) Hardening (optional) ---
if ($Harden) {
# Remove WebDAV (handler + module)
Remove-Handler -name "WebDAV"
Remove-Module -moduleName "WebDAVModule"

# Remove TRACE handler if exists
Remove-Handler -name "TRACEVerbHandler"
}

# --- 3) Ensure basic handlers ---
Add-Handler @{
name='StaticFile';
path='*';
verb='GET,HEAD,POST';
modules='StaticFileModule';
resourceType='Either'
}

Add-Handler @{
name='OPTIONSVerbHandler';
path='*';
verb='OPTIONS';
modules='ProtocolSupportModule'
}

# --- 4) WEBDEV AWP: ISAPI restriction + handler ---
if (-not (Test-Path $WebDevAwpExe)) {
Write-Host "WARNING: AWP executable not found on disk: $WebDevAwpExe" -ForegroundColor Yellow
}
IsapiCgiRestriction-EnsureAllowed -exePath $WebDevAwpExe -desc $WebDevAwpDescription

Add-Handler @{
name='WEBDEV-AWP';
path='*.awp';
verb='*';
modules='IsapiModule';
scriptProcessor=$WebDevAwpExe;
resourceType='Unspecified';
requireAccess='Script'
}

# --- 5) Export AFTER ---
Export-Handlers -label "after"

Write-Host "`nDone. Review exported files under $ExportFolder" -ForegroundColor Green


<?xml version="1.0" encoding="UTF-8"?>
<!--
Baseline-IIS10-Handlers.xml
Purpose: Version this file in Git to represent a minimal-safe handler set for IIS 10 + WEBDEV AWP.
Note: This is a fragment representing <system.webServer><handlers>. Apply using your CM process
or compare with 'appcmd list config -section:system.webServer/handlers' on target servers.
-->
<configuration>
<system.webServer>
<handlers>
<!-- Static files (ensure present) -->
<add name="StaticFile"
path="*"
verb="GET,HEAD,POST"
modules="StaticFileModule"
resourceType="Either" />

<!-- OPTIONS verb handler (CORS preflight etc.) -->
<add name="OPTIONSVerbHandler"
path="*"
verb="OPTIONS"
modules="ProtocolSupportModule" />

<!-- WEBDEV AWP handler (adjust path to your installed version) -->
<add name="WEBDEV-AWP"
path="*.awp"
verb="*"
modules="IsapiModule"
scriptProcessor="C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE"
resourceType="Unspecified"
requireAccess="Script" />

<!-- Intentionally NOT including WebDAV or TRACE in this baseline -->
</handlers>
</system.webServer>
</configuration>


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 24 septembre 2025 - 14:16
Exemplo para todos os sites

Perfeito! Aqui está a versão para todos os sites do IIS:

Apply-WebDevAWP-IIS10-AllSites.ps1
Baixar o PowerShell

Como usar (resumo):
1. Abra PowerShell como Administrador.
2. Edite no topo do script, se necessário:
• $WebDevAwpExe (aponte para o WDxxxAWP.EXE da sua versão),
• $WebDevAwpDescription,
• $Harden (true para remover WebDAV/TRACE),
• $ExportFolder,
• $IncludeSites / $ExcludeSites (opcional).
3. Execute: .\Apply-WebDevAWP-IIS10-AllSites.ps1

O script:
• Descobre todos os sites via appcmd list site;
• (Opcional) remove WebDAV (módulo global) e TRACE (handler por site);
• Garante StaticFile e OPTIONSVerbHandler em cada site;
• Adiciona o handler WEBDEV-AWP (*.awp → IsapiModule → WDxxxAWP.EXE) com resourceType='Unspecified' e requireAccess='Script';
• Tira snapshots “before/after” por site no diretório definido.

Se quiser, eu agrego uma flag para aplicar também em Virtual Directories específicos (e não no site inteiro), ou gerar um .cmd simples para chamar o .ps1 com parâmetros padronizados.

<#
Apply-WebDevAWP-IIS10-AllSites.ps1
Purpose : Apply a safe IIS 10 handlers baseline to ALL sites and add WEBDEV AWP handler.
Requires: Windows Server 2016/2019/2022 + IIS 10, run as Administrator
Note : Uses appcmd.exe so it works even without the WebAdministration module imported.
#>

[CmdletBinding()]
param(
# === GLOBAL VARIABLES TO REVIEW ===

# Full path to your WEBDEV AWP engine executable (adjust to your installed version)
[string]$WebDevAwpExe = "C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE",

# ISAPI/CGI restriction friendly description
[string]$WebDevAwpDescription = "WEBDEV AWP 30",

# Apply hardening (remove WebDAV handler/module and TRACE handler if found)
[bool]$Harden = $true,

# Export folder (BEFORE/AFTER snapshots per site)
[string]$ExportFolder = "C:\temp",

# Optional allow-list. If empty -> all sites.
[string[]]$IncludeSites = @(),

# Optional deny-list
[string[]]$ExcludeSites = @()
)

$ErrorActionPreference = "Stop"
$appcmd = Join-Path $env:WINDIR "System32\inetsrv\appcmd.exe"

if (-not (Test-Path $appcmd)) {
throw "appcmd.exe not found at $appcmd. Install IIS Management Scripts and Tools."
}
if (-not (Test-Path $ExportFolder)) {
New-Item -Path $ExportFolder -ItemType Directory -Force | Out-Null
}

Write-Host "== Apply-WebDevAWP-IIS10 (ALL SITES) ==" -ForegroundColor Cyan
Write-Host "AWP Executable : $WebDevAwpExe"
Write-Host "Hardening : $Harden"
Write-Host "Export Folder : $ExportFolder"
Write-Host ""

function Get-AllSites {
# Parse sites from appcmd to avoid module dependencies
$sitesRaw = & $appcmd list site
# Example line: "SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)"
$names = @()
foreach($line in $sitesRaw){
if ($line -match '^SITE\s+"([^"]+)"') {
$names += $matches[1]
}
}
return $names
}

function Export-Handlers([string]$site,[string]$label) {
$safeSite = ($site -replace '[^\w-]','_')
$out = Join-Path $ExportFolder ("handlers_{0}_{1}.xml" -f $safeSite, $label)
& $appcmd list config "$site" -section:system.webServer/handlers /config:* | Out-File -FilePath $out -Encoding UTF8
Write-Host "[$site] Exported handlers ($label) -> $out"
}

function Handler-Exists([string]$site,[string]$name) {
$xml = & $appcmd list config "$site" -section:system.webServer/handlers /config:*
[xml]$doc = $xml
$exists = $false
$doc.configuration.'system.webServer'.handlers.add | ForEach-Object {
if ($_.name -eq $name) { $exists = $true }
}
return $exists
}

function Remove-Handler([string]$site,[string]$name) {
if (Handler-Exists $site $name) {
& $appcmd set config "$site" -section:handlers "/-`"[name='$name']`"" | Out-Null
Write-Host "[$site] Removed handler: $name"
}
}

function Add-Handler([string]$site,[hashtable]$h) {
$name = $h.name
if (Handler-Exists $site $name) {
Write-Host "[$site] Handler already exists: $name" -ForegroundColor Yellow
return
}
$args = "/+`"[name='{0}'" -f $h.name
if ($h.path) { $args += ",path='{0}'" -f $h.path }
if ($h.verb) { $args += ",verb='{0}'" -f $h.verb }
if ($h.modules) { $args += ",modules='{0}'" -f $h.modules }
if ($h.type) { $args += ",type='{0}'" -f $h.type }
if ($h.scriptProcessor) { $args += ",scriptProcessor='{0}'" -f $h.scriptProcessor }
if ($h.resourceType) { $args += ",resourceType='{0}'" -f $h.resourceType }
if ($h.requireAccess) { $args += ",requireAccess='{0}'" -f $h.requireAccess }
$args += "]`""
& $appcmd set config "$site" -section:system.webServer/handlers $args | Out-Null
Write-Host "[$site] Added handler: $name"
}

function IsapiCgiRestriction-EnsureAllowed([string]$exePath, [string]$desc) {
$current = & $appcmd list config -section:isapiCgiRestriction
if ($current -match [Regex]::Escape($exePath)) {
# Ensure allowed true (idempotent)
& $appcmd set config -section:isapiCgiRestriction "/[path='$exePath'].allowed:`"True`"" | Out-Null
Write-Host "[GLOBAL] ISAPI/CGI Restriction already present (allowed): $exePath" -ForegroundColor Yellow
return
}
& $appcmd set config -section:isapiCgiRestriction "/+`"[path='$exePath',description='$desc',allowed='True']`"" | Out-Null
Write-Host "[GLOBAL] ISAPI/CGI Restriction added: $exePath"
}

function Remove-GlobalModule([string]$moduleName) {
$modulesList = & $appcmd list modules
if ($modulesList -match ("Module `"*{0}`"* " -f [Regex]::Escape($moduleName))) {
& $appcmd delete module $moduleName | Out-Null
Write-Host "[GLOBAL] Deleted module: $moduleName"
} else {
Write-Host "[GLOBAL] Module not present: $moduleName" -ForegroundColor Yellow
}
}

# --- Discover target sites ---
$targets = Get-AllSites
if ($IncludeSites.Count -gt 0) {
$targets = $targets | Where-Object { $_ -in $IncludeSites }
}
if ($ExcludeSites.Count -gt 0) {
$targets = $targets | Where-Object { $_ -notin $ExcludeSites }
}

if ($targets.Count -eq 0) {
Write-Warning "No sites selected. Use IncludeSites or verify IIS has sites."
return
}

# --- Global hardening (optional) ---
if ($Harden) {
# Remove WebDAV module globally (optional)
Remove-GlobalModule -moduleName "WebDAVModule"
}

# Ensure ISAPI/CGI restriction for the AWP executable (global)
if (-not (Test-Path $WebDevAwpExe)) {
Write-Host "[WARN] AWP executable not found on disk: $WebDevAwpExe" -ForegroundColor Yellow
}
IsapiCgiRestriction-EnsureAllowed -exePath $WebDevAwpExe -desc $WebDevAwpDescription

# --- Process every site ---
foreach ($site in $targets) {
Write-Host "=== SITE: $site ===" -ForegroundColor Cyan

# 1) Export BEFORE
Export-Handlers -site $site -label "before"

# 2) Site-level hardening
if ($Harden) {
Remove-Handler -site $site -name "WebDAV"
Remove-Handler -site $site -name "TRACEVerbHandler"
}

# 3) Ensure minimal handlers
Add-Handler -site $site -h @{
name='StaticFile';
path='*';
verb='GET,HEAD,POST';
modules='StaticFileModule';
resourceType='Either'
}

Add-Handler -site $site -h @{
name='OPTIONSVerbHandler';
path='*';
verb='OPTIONS';
modules='ProtocolSupportModule'
}

# 4) Add WEBDEV AWP handler
Add-Handler -site $site -h @{
name='WEBDEV-AWP';
path='*.awp';
verb='*';
modules='IsapiModule';
scriptProcessor=$WebDevAwpExe;
resourceType='Unspecified';
requireAccess='Script'
}

# 5) Export AFTER
Export-Handlers -site $site -label "after"
}

Write-Host "`nAll done. Snapshots saved to $ExportFolder" -ForegroundColor Green


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 24 septembre 2025 - 14:21
Exemplo para aplicar também em Virtual Directories específicos

Adicionei o script para aplicar em Virtual Directories / Applications específicos:

Apply-WebDevAWP-IIS10-Targets.ps1
Baixar o PowerShell

<#
Apply-WebDevAWP-IIS10-Targets.ps1
Purpose : Apply IIS 10 handlers baseline + WEBDEV AWP specifically to selected Virtual Directories/Applications.
Requires: Windows Server 2016/2019/2022 + IIS 10, run as Administrator
Notes : Uses appcmd.exe so it works without importing WebAdministration.
#>

[CmdletBinding()]
param(
# === GLOBAL VARIABLES TO REVIEW ===

# Full path to your WEBDEV AWP engine executable (adjust to your installed version)
[string]$WebDevAwpExe = "C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE",

# ISAPI/CGI restriction friendly description
[string]$WebDevAwpDescription = "WEBDEV AWP 30",

# Apply hardening (remove TRACE handler if found on the target; WebDAV is typically site/global)
[bool]$Harden = $true,

# Export folder (BEFORE/AFTER snapshots per target)
[string]$ExportFolder = "C:\temp",

<#
Targets are IIS application/virtual directory paths in the form:
- "Default Web Site/App1"
- "Default Web Site/VD_WebDev"
If you pass only a SiteName (e.g., "Default Web Site"), the handler is applied at the site root.
#>
[Parameter(Mandatory=$true)]
[string[]]$Targets
)

$ErrorActionPreference = "Stop"
$appcmd = Join-Path $env:WINDIR "System32\inetsrv\appcmd.exe"

if (-not (Test-Path $appcmd)) {
throw "appcmd.exe not found at $appcmd. Install IIS Management Scripts and Tools."
}
if (-not (Test-Path $ExportFolder)) {
New-Item -Path $ExportFolder -ItemType Directory -Force | Out-Null
}

Write-Host "== Apply-WebDevAWP-IIS10 (TARGETS) ==" -ForegroundColor Cyan
Write-Host "AWP Executable : $WebDevAwpExe"
Write-Host "Hardening : $Harden"
Write-Host "Export Folder : $ExportFolder"
Write-Host ""

function Export-Handlers([string]$path,[string]$label) {
$safe = ($path -replace '[^\w-]','_')
$out = Join-Path $ExportFolder ("handlers_{0}_{1}.xml" -f $safe, $label)
& $appcmd list config "$path" -section:system.webServer/handlers /config:* | Out-File -FilePath $out -Encoding UTF8
Write-Host "[$path] Exported handlers ($label) -> $out"
}

function Handler-Exists([string]$path,[string]$name) {
$xml = & $appcmd list config "$path" -section:system.webServer/handlers /config:*
[xml]$doc = $xml
$exists = $false
$doc.configuration.'system.webServer'.handlers.add | ForEach-Object {
if ($_.name -eq $name) { $exists = $true }
}
return $exists
}

function Remove-Handler([string]$path,[string]$name) {
if (Handler-Exists $path $name) {
& $appcmd set config "$path" -section:handlers "/-`"[name='$name']`"" | Out-Null
Write-Host "[$path] Removed handler: $name"
}
}

function Add-Handler([string]$path,[hashtable]$h) {
$name = $h.name
if (Handler-Exists $path $name) {
Write-Host "[$path] Handler already exists: $name" -ForegroundColor Yellow
return
}
$args = "/+`"[name='{0}'" -f $h.name
if ($h.path) { $args += ",path='{0}'" -f $h.path }
if ($h.verb) { $args += ",verb='{0}'" -f $h.verb }
if ($h.modules) { $args += ",modules='{0}'" -f $h.modules }
if ($h.type) { $args += ",type='{0}'" -f $h.type }
if ($h.scriptProcessor) { $args += ",scriptProcessor='{0}'" -f $h.scriptProcessor }
if ($h.resourceType) { $args += ",resourceType='{0}'" -f $h.resourceType }
if ($h.requireAccess) { $args += ",requireAccess='{0}'" -f $h.requireAccess }
$args += "]`""
& $appcmd set config "$path" -section:system.webServer/handlers $args | Out-Null
Write-Host "[$path] Added handler: $name"
}

function IsapiCgiRestriction-EnsureAllowed([string]$exePath, [string]$desc) {
# Global scope check
$current = & $appcmd list config -section:isapiCgiRestriction
if ($current -match [Regex]::Escape($exePath)) {
& $appcmd set config -section:isapiCgiRestriction "/[path='$exePath'].allowed:`"True`"" | Out-Null
Write-Host "[GLOBAL] ISAPI/CGI Restriction already present (allowed): $exePath" -ForegroundColor Yellow
return
}
& $appcmd set config -section:isapiCgiRestriction "/+`"[path='$exePath',description='$desc',allowed='True']`"" | Out-Null
Write-Host "[GLOBAL] ISAPI/CGI Restriction added: $exePath"
}

# Ensure ISAPI/CGI restriction for the AWP executable (global)
if (-not (Test-Path $WebDevAwpExe)) {
Write-Host "[WARN] AWP executable not found on disk: $WebDevAwpExe" -ForegroundColor Yellow
}
IsapiCgiRestriction-EnsureAllowed -exePath $WebDevAwpExe -desc $WebDevAwpDescription

foreach ($path in $Targets) {
Write-Host "=== TARGET: $path ===" -ForegroundColor Cyan

# 1) Export BEFORE
Export-Handlers -path $path -label "before"

# 2) Target-level hardening (TRACE handler entry)
if ($Harden) {
Remove-Handler -path $path -name "TRACEVerbHandler"
}

# 3) Ensure minimal handlers (these get defined at this level for isolation)
Add-Handler -path $path -h @{
name='StaticFile';
path='*';
verb='GET,HEAD,POST';
modules='StaticFileModule';
resourceType='Either'
}

Add-Handler -path $path -h @{
name='OPTIONSVerbHandler';
path='*';
verb='OPTIONS';
modules='ProtocolSupportModule'
}

# 4) Add WEBDEV AWP handler (AWP extension)
Add-Handler -path $path -h @{
name='WEBDEV-AWP';
path='*.awp';
verb='*';
modules='IsapiModule';
scriptProcessor=$WebDevAwpExe;
resourceType='Unspecified';
requireAccess='Script'
}

# 5) Export AFTER
Export-Handlers -path $path -label "after"
}

Write-Host "`nAll targets processed. Snapshots saved to $ExportFolder" -ForegroundColor Green


Como usar (exemplos):
1. Aplicar em um Virtual Directory chamado VD_WebDev dentro do Default Web Site:

.\Apply-WebDevAWP-IIS10-Targets.ps1 `
-WebDevAwpExe "C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE" `
-Targets @("Default Web Site/VD_WebDev")

2. Aplicar em dois Applications:

.\Apply-WebDevAWP-IIS10-Targets.ps1 `
-Targets @("Default Web Site/App1","Default Web Site/App2") `
-Harden $true -ExportFolder "C:\audit\handlers"

3. Aplicar no site inteiro (caso queira forçar no nível do site, mesmo script aceita):

.\Apply-WebDevAWP-IIS10-Targets.ps1 -Targets @("Default Web Site")

O script:
• Garante a ISAPI/CGI Restriction para o WDxxxAWP.EXE globalmente;
• Exporta snapshots before/after por alvo;
• (Opcional) remove TRACEVerbHandler no nível do alvo (-Harden $true);
• Garante StaticFile e OPTIONSVerbHandler no nível do alvo;
• Adiciona o handler WEBDEV-AWP (*.awp → IsapiModule → WDxxxAWP.EXE) com resourceType='Unspecified' e requireAccess='Script'.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 24 septembre 2025 - 14:26
# IIS 10 + WEBDEV AWP Handlers – Deployment Package

This package contains scripts to audit, baseline, and configure IIS 10 **Handler Mappings** and add the **WEBDEV AWP** handler (`*.awp → IsapiModule → WDxxxAWP.EXE`).
Tested on Windows Server 2016/2019/2022 with IIS 10. **Run as Administrator.**

## Files

- `Apply-WebDevAWP-IIS10.ps1` – Apply to a **single site** (steps 2–5 of the guide).
- `Apply-WebDevAWP-IIS10-AllSites.ps1` – Apply to **all sites** in IIS.
- `Apply-WebDevAWP-IIS10-Targets.ps1` – Apply to **specific Applications/Virtual Directories** (e.g., `Default Web Site/VD_WebDev`).
- `Baseline-IIS10-Handlers.xml` – Baseline fragment for `<system.webServer><handlers>` (for Git versioning/compare).
- `Deploy-WebDevAWP.cmd` – Interactive wrapper to call the PowerShell scripts with sane defaults.

> Ensure the path to your WEBDEV AWP engine is correct (e.g. `C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE`).

---

## Prerequisites

1. Windows Server 2016+ with **IIS 10** installed.
2. Role services: **ISAPI Extensions** and **ISAPI Filters**.
3. **WEBDEV Application Server** installed with the matching version of your app.
4. PowerShell run **as Administrator**.
5. Optional (recommended): Install **IIS Management Scripts and Tools** (for `appcmd.exe`).

---

## Quick Start (Recommended)

1. Copy all files to a folder on the server, e.g. `C:\Admin\WebDevAwpHandlers\`.
2. Edit variables at the top of the scripts or use the `.cmd` **wrapper**.
3. Right‑click **`Deploy-WebDevAWP.cmd`** → **Run as administrator**.
4. Choose:
- `1` – Apply to **one site**;
- `2` – Apply to **all sites**;
- `3` – Apply to **specific targets** (applications/virtual directories).

The scripts will:
- Export **before/after** snapshots of handler mappings to the configured folder (e.g. `C:\temp\handlers\`);
- (Optional) harden the config by removing **WebDAV** and **TRACE** handler entries;
- Ensure **StaticFile** and **OPTIONSVerbHandler** handlers;
- Add **WEBDEV‑AWP** (`*.awp → IsapiModule → WDxxxAWP.EXE`) with `resourceType='Unspecified'` and `requireAccess='Script'`;
- Ensure **ISAPI/CGI Restriction** allows the AWP executable globally.

---

## Validating the Installation

### A) Using IIS Manager (GUI)
1. Open **IIS Manager** → select your **Site** (or **Application**/VD).
2. Open **Handler Mappings** and confirm you see:
- `StaticFile` (modules: `StaticFileModule`)
- `OPTIONSVerbHandler` (modules: `ProtocolSupportModule`)
- `WEBDEV-AWP` (modules: `IsapiModule`, **Executable** path points to `WDxxxAWP.EXE`)
3. For `WEBDEV-AWP` → **Edit** → **Request Restrictions…**:
- **DO NOT** require “File or folder must exist” (resourceType is set to `Unspecified`).

### B) Using AppCmd (CLI)
```bat
cd %windir%\system32\inetsrv
appcmd list config "Default Web Site" -section:system.webServer/handlers
```
Look for `WEBDEV-AWP` with the correct `scriptProcessor` path.

### C) Test an AWP URL
From the server:
```powershell
Invoke-WebRequest http://localhost/index.awp -UseBasicParsing | Select-Object StatusCode,Headers | Format-List
```

If using **Application Request Routing / URL Rewrite**, keep the AWP handler active and avoid “file must exist” checks for `.awp` routes.


---

## Rolling Back

1. Handlers are stored under `<system.webServer><handlers>` at the appropriate level (machine/site/app).
2. Use the **before** snapshot exported by the script to manually reconcile differences, or remove specific entries:
```bat
cd %windir%\system32\inetsrv
appcmd set config "Default Web Site" -section:handlers "/-[name='WEBDEV-AWP']"
appcmd set config -section:isapiCgiRestriction "/[path='C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE'].allowed:\"False\""
```
3. If you removed WebDAV and need it back:
```bat
dism /online /enable-feature /featurename:IIS-WebDAV /All
%windir%\system32\inetsrv\appcmd.exe add module /name:WebDAVModule /image:%windir%\System32\inetsrv\WebDAV.dll
```

---

## Notes & Tips

- Match the **AWP executable** to your WEBDEV version: `WD260AWP.EXE`, `WD280AWP.EXE`, `WD300AWP.EXE` (etc.).
- For **Session mode** apps, a `.awp` handler isn’t required; only AWP/CGI apps need it.
- Avoid having **WebDAV** enabled on sites that don’t need it; it can block `PUT/DELETE` verbs.
- During setup, enable **Failed Request Tracing** to debug odd routing behaviors.
- For source control, commit `Baseline-IIS10-Handlers.xml` and compare with production exports.

---

## Troubleshooting

- **HTTP 404 for `.awp`**: Check that you **don’t require file existence** and that the handler is at the correct **level** (site vs app).
- **HTTP 500 on execution**: Confirm the AWP path is valid, ACLs permit execution, and **ISAPI/CGI Restriction** is **Allowed**.
- **Module not found**: Ensure required role services are installed (ISAPI Extensions/Filters, URL Rewrite if used, etc.).
- **ARR/Reverse Proxy**: Preserve the `.awp` extension in rewrite rules, or rewrite to an `.awp` endpoint.

---

## Example – Minimal `web.config` (app/VD level)

```xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="WEBDEV-AWP"
path="*.awp"
verb="*"
modules="IsapiModule"
scriptProcessor="C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE"
resourceType="Unspecified"
requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>
```

---

## License / Disclaimer

Scripts provided “as is”, without warranty. Review and test in a staging environment before production.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
4 595 messages
Posté le 24 septembre 2025 - 14:38
Bora automatizar o IIS com PowerShell! Aqui está um “menu” do que dá pra fazer (e exemplos prontos). Tudo funciona no IIS 10 (WS 2016+). Use preferencialmente o módulo WebAdministration; quando faltar algo, dá pra chamar o appcmd.exe.

O que dá pra automatizar no IIS com PowerShell

1) Sites, Apps e Pools
• Criar/alterar Application Pools (CLR, pipeline, identidade, recycling).
• Criar Sites e Applications (físico, pool, permissões NTFS).
• Start/Stop/Recycle de site/pool; política de reciclagem por horário/memória.

Import-Module WebAdministration
# App Pool
New-WebAppPool -Name "MyPool"
Set-ItemProperty IIS:\AppPools\MyPool -Name managedRuntimeVersion -Value "v4.0"
Set-ItemProperty IIS:\AppPools\MyPool -Name processModel.identityType -Value "ApplicationPoolIdentity"

# Site
New-Item "IIS:\Sites\MySite" -bindings @{protocol="http";bindingInformation="*:80:mysite.local"} `
-physicalPath "D:\Sites\MySite"
Set-ItemProperty IIS:\Sites\MySite -Name applicationPool -Value "MyPool"

# Application (virtual dir com pool dedicado)
New-WebApplication -Site "MySite" -Name "api" -PhysicalPath "D:\Sites\MySite\api" -ApplicationPool "MyPool"

2) Bindings, HTTPS, SNI e Certificados
• Criar/editar bindings HTTP/HTTPS.
• Associar certificado por thumbprint; habilitar SNI e TLS modernos.

# HTTPS com certificado (thumbprint) e SNI
New-WebBinding -Name "MySite" -Protocol https -Port 443 -HostHeader "mysite.local"
$cert = "‎THUMBPRINT_AQUI"
Push-Location IIS:\SslBindings
Get-Item cert:\LocalMachine\My\$cert | New-Item 0.0.0.0!443!mysite.local
Pop-Location

# HSTS (via header)
Add-WebConfigurationProperty -pspath 'IIS:\' -filter "system.webServer/httpProtocol/customHeaders" `
-name "." -value @{name='Strict-Transport-Security'; value='max-age=31536000; includeSubDomains; preload'}

3) Handlers, Módulos e MIME
• Adicionar/editar Handler Mappings (ISAPI/CGI/Managed).
• Habilitar/desabilitar módulos.
• Extensões MIME personalizadas.

# Handler .awp → AWP Engine (exemplo PC SOFT)
$app = "IIS:\Sites\MySite"
Add-WebConfigurationProperty -pspath $app -filter "system.webServer/handlers" -name "." `
-value @{name='WEBDEV-AWP'; path='*.awp'; verb='*'; modules='IsapiModule';
scriptProcessor='C:\PC SOFT\WEBDEV 30\Programs\Engine\Windows\AWP\WD300AWP.EXE';
resourceType='Unspecified'; requireAccess='Script'}

# Módulo (ex.: remover WebDAV)
Remove-WebGlobalModule WebDAVModule -ErrorAction SilentlyContinue

# MIME .webp
Add-WebConfigurationProperty -pspath "IIS:\" -filter "system.webServer/staticContent" -name "." `
-value @{fileExtension='.webp'; mimeType='image/webp'}

4) URL Rewrite / ARR (reverse proxy)
• Criar regras de rewrite/redirect.
• Proxy reverso (ARR) para backends (com preserveHost/cabeçalhos).

# Regra simples de rewrite
$rule = @"
<rule name='SpaRewrite' stopProcessing='true'>
<match url='.*' />
<conditions logicalGrouping='MatchAll'>
<add input='{REQUEST_FILENAME}' matchType='IsFile' negate='true' />
<add input='{REQUEST_FILENAME}' matchType='IsDirectory' negate='true' />
</conditions>
<action type='Rewrite' url='/index.html' />
</rule>
"@
Add-WebConfiguration -pspath "IIS:\Sites\MySite" -filter "system.webServer/rewrite/rules" -value $rule

5) Segurança e Filtragem
• requestFiltering (tamanho de upload, fileExtensions allow/deny, verbos).
• IP Restrictions, Authentication (Windows/Basic/Anonymous).
• Headers de segurança (CSP, X-Frame-Options, X-Content-Type-Options).

# Limite de upload 100MB
Set-WebConfigurationProperty -pspath "IIS:\Sites\MySite" `
-filter "system.webServer/security/requestFiltering/requestLimits" `
-name "maxAllowedContentLength" -value 104857600

# Desabilitar Directory Browsing
Set-WebConfigurationProperty -pspath "IIS:\Sites\MySite" `
-filter "system.webServer/directoryBrowse" -name "enabled" -value false

# Headers de segurança
$headers = @(
@{name='X-Content-Type-Options';value='nosniff'},
@{name='X-Frame-Options';value='SAMEORIGIN'},
@{name='Referrer-Policy';value='no-referrer-when-downgrade'}
)
foreach($h in $headers){
Add-WebConfigurationProperty -pspath "IIS:\Sites\MySite" -filter "system.webServer/httpProtocol/customHeaders" -name "." -value $h -ErrorAction SilentlyContinue
}

6) Logging, FREB e Diagnóstico
• Configurar logs (formato, diretório, campos).
• Ativar Failed Request Tracing (FREB) por status/código.
• Coletar eventos, acessar applicationHost.config e backups.

# Habilitar FREB para 400-999
Set-WebConfigurationProperty -pspath "IIS:\Sites\MySite" `
-filter "system.webServer/tracing" -name "enabled" -value true
Add-WebConfigurationProperty -pspath "IIS:\Sites\MySite" `
-filter "system.webServer/tracing/traceFailedRequests" -name "." `
-value @{path="*"}
Add-WebConfigurationProperty -pspath "IIS:\Sites\MySite" `
-filter "system.webServer/tracing/traceFailedRequests/add/failureDefinitions/statusCodes" -name "." `
-value @{statusCode="400-999"}

7) Deploy & Config as Code
• Backup/Restore da configuração (exportar seção handlers, sites).
• Transform/merge de web.config por ambiente.
• Provisionar IIS inteiro em script único/CI.

# Exportar handlers do site
$appcmd = "$env:WINDIR\System32\inetsrv\appcmd.exe"
& $appcmd list config "MySite" -section:system.webServer/handlers /config:* > C:\temp\handlers_mysite.xml

# Backup completo
& $appcmd add backup "pre_deploy_$(Get-Date -f yyyyMMddHHmmss)"

8) Reciclagem, Health Check e Auto-Heal
• Agendar reciclagem por horário/consumo.
• Ping máximo e Rapid-Fail Protection.
• Retry automático em falhas.

# Reciclagem diária às 03:00
Set-ItemProperty IIS:\AppPools\MyPool -Name recycling.periodicRestart.schedule `
-Value @{value="03:00:00"}

# Rapid-Fail Protection
Set-ItemProperty IIS:\AppPools\MyPool -Name failure.rapidFailProtection -Value true
Set-ItemProperty IIS:\AppPools\MyPool -Name failure.rapidFailProtectionMaxCrashes -Value 5
Set-ItemProperty IIS:\AppPools\MyPool -Name failure.rapidFailProtectionInterval -Value (New-TimeSpan -Minutes 5)

9) FTPS / WebDAV / Compression / Static Cache
• Ligar Dynamic/Static Compression.
• Static Content caching com cacheControl.
• Configurar FTPS e WebDAV (ou remover, se não usa).

# Static Compression + Cache-Control
Set-WebConfigurationProperty -pspath "IIS:\Sites\MySite" -filter "system.webServer/urlCompression" -name doStaticCompression -value true
Set-WebConfigurationProperty -pspath "IIS:\Sites\MySite" -filter "system.webServer/staticContent/clientCache" -name cacheControlMode -value "UseMaxAge"
Set-WebConfigurationProperty -pspath "IIS:\Sites\MySite" -filter "system.webServer/staticContent/clientCache" -name cacheControlMaxAge -value ([TimeSpan]::FromDays(30))

10) Integração com Windows / ACLs / Permissões
• Garantir permissões NTFS para IIS AppPool\NomeDoPool.
• Criar usuários locais/AD e vincular a Pools específicos.

# Permissão NTFS para leitura/execução do pool
$path = "D:\Sites\MySite"
$poolUser = "IIS AppPool\MyPool"
icacls $path /grant "$poolUser:(OI)(CI)RX" /T




“Pacotão” de automação

Se quiser, eu junto tudo em scripts prontos por tarefa (ex.: “01-CreateSite.ps1”, “02-EnableHttps.ps1”, “03-Hardening.ps1”, “04-LogsAndFreb.ps1”, “05-UrlRewrite.ps1”) ou numa orquestração única com parâmetros (-SiteName, -Host, -CertThumb, -EnableARR, -AddWebDevAwp, etc.) — igual ao padrão que te entreguei para handlers/AWP.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/