Página 1 de 2
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 11:10
por NiltonGM
Pessoal, alguém sabe se é possível instalar o MSXML2.ServerXMLHTTP.6.0 no Windows 7 Pro? Meu app em harbour + hmg usa essa dll (msxml6.dll) para se comunicar com API da Nuvem Fiscal para emissão de CTe/MDFe, nos clientes com Win10 ou Win11 funcionta top, porem um cliente mais antigo onde estou fazendo a migração da versão 3.00 para 4.00 CTe, o seu "servidor" é Windows 7, o PC é antigo não suporta update de RAM ou SSD para por um Win10, assim que rodei meu sistema apareceu a mensagem "Error WINOLE/1007 Erro no suporte a canais seguros (0x80072F7D): msxml6.dll (DOS Error -2147352567)"
Seria o caso de apenas conseguir essa dll e copiar na raiz do meu app? Não consegui achar nada no google, a IA diz que é possível instalar, mas o link para download da MS não disponibiliza essa dll.
Grato
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 11:27
por Kapiaba
Bom dia, a .DLL deve estar em C:\WINDOWS\SYSTEM32
Executar o comando Regsvr32 em um prompt de comando como ADM:
regsvr32 /u msxml6.dll
regsvr32 msxml6.dll
Abs,
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 11:31
por NiltonGM
Kapiaba escreveu:Bom dia, a .DLL deve estar em C:\WINDOWS\SYSTEM32
Executar o comando Regsvr32 em um prompt de comando como ADM:
regsvr32 /u msxml6.dll
regsvr32 msxml6.dll
Abs,
Bom dia, eu copiei a dll para a raiz do meu app, rodei o regsvr32 /u msxml6.dll, não deu certo, como faço para o Win7 reconhecer e deixa-la disponível para meu app?
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 11:35
por Kapiaba
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 11:38
por NiltonGM
Kapiaba escreveu:MSXML6.png
abs.
Até esse passo, beleza, mas meu app em Harbour continua dando a mesma msg de erro como mencionado no primeiro post.
Será preciso reiniciar o PC?
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 11:56
por NiltonGM
Reiniciei o PC e não deu certo também. Mesma msg:
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 11:59
por Kapiaba
Veja se o TLS 1.2 está ligado e reinicie. Quem sabe não resolve? Ou poste o código para análise. Vai que...
https://stackoverflow.com/questions/485 ... n-windows7
Abs.
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 12:06
por NiltonGM
Kapiaba escreveu:Veja se o TLS 1.2 está ligado e reinicie. Quem sabe não resolve? Ou poste o código para análise. Vai que...
Abs.
TLS 1.2 ativo está porque o ACBrMonitor está rodando com SSL
LT_TLSv1_2, no harbour não sei como é isso, uso no Windows 10 e Win11 sem problemas com o msxml6.
De qualquer forma segue o código de autenticação com a nuvem fiscal onde invoca a dll.
Código: Selecionar todos
#include "hmg.ch"
#include <hbclass.ch>
#define MODO_ASSINCRONO .F.
class TAuthNuvemFiscal
data regPath readonly
data token
data expires_in readonly
data Authorized readonly
method new() constructor
method getNewToken()
end class
method new() class TAuthNuvemFiscal
::regPath := appData:winRegistryPath
::token := CharXor(RegistryRead(::regPath + "nuvemFiscal\token"), "SysWeb2023")
::expires_in := StoD(RegistryRead(::regPath + "nuvemFiscal\expires_in"))
if Empty(::expires_in) .or. (::expires_in < Date())
// Ainda não tem token ou garante o novo token 2 dias antes de expirar
::Authorized := ::getNewToken()
else
::Authorized := true
endif
return Self
method getNewToken() class TAuthNuvemFiscal
local lAuth := false, lError := false
local empresa := appEmpresas:empresas[1] // as Keys são as mesmas para todas as empresas
local url := "https://auth.nuvemfiscal.com.br/oauth/token"
local connection, response
local content_type := "application/x-www-form-urlencoded"
local client_id := empresa:nuvemfiscal_client_id
local client_secret := empresa:nuvemfiscal_client_secret
local scope := "cte mdfe cnpj empresa cep conta"
local hResp, objError, msgError, body
begin sequence
connection := win_oleCreateObject("MSXML2.ServerXMLHTTP.6.0")
if Empty(connection)
saveLog("Erro na criação do serviço: MSXML2")
// consoleLog({'win_oleCreateObject("MSXML2.ServerXMLHTTP.6.0") retornou type: ', ValType(connection), hb_eol()})
lError := true
Break
endif
end sequence
if lError
return false
endif
begin sequence
connection:Open("POST", url, MODO_ASSINCRONO)
connection:SetRequestHeader("Content-Type", content_type)
/* Os parâmetros são separados pelo & (ê comercial),
mas o Harbour interpreta como macro substituição!
Neste caso, é preciso usar o chr(38) para impor o &
a cada parâmentro na string body
*/
body := "grant_type=client_credentials"
body += chr(38) + "client_id=" + client_id
body += chr(38) + "client_secret=" + client_secret
body += chr(38) + "scope=" + scope
connection:Send(body)
connection:WaitForResponse(5000)
recover using objError
msgError := MsgDebug(connection)
if (objError:genCode == 0)
// consoleLog({"Erro de conexão com o site", hb_eol(), hb_eol(), msgError, hb_eol()})
saveLog({"Erro de conexão com o site", hb_eol(), hb_eol()})
else
// consoleLog({"Erro de conexão com o site", hb_eol(), "Error: ", objError:description, hb_eol(), msgError, hb_eol()})
saveLog({"Erro de conexão com o site", hb_eol(), "Error: ", objError:description, hb_eol()})
endif
saveLog({"Erro de conexão com o site", hb_eol(), msgError, hb_eol()})
lError := true
Break
end sequence
if lError
return false
endif
response := connection:ResponseBody
// consoleLog(response)
hResp := hb_jsonDecode(response)
if hb_HGetRef(hResp, "access_token")
::token := hResp["access_token"]
// Converte os segundos em dia (até segunda ordem da nuvem fiscal, é sempre 2592000's, que dá 30 dias)
::expires_in := Date() + hResp["expires_in"]/60/60/24
::expires_in := ::expires_in -2 // Menos 2 dias para garantir a renovação antes de expirar efetivamente
RegistryWrite(::regPath + "nuvemFiscal\token", CharXor(::token, "SysWeb2023"))
RegistryWrite(::regPath + "nuvemFiscal\expires_in", DtoS(::expires_in))
lAuth := true
else
msgError := MsgDebug(response, hResp)
//Teste: Passou! | consoleLog({"ResponseBody (hResp) retornou vazio", hb_eol(), msgError})
saveLog("Falha na autenticação com a API da NuvemFiscal, o responseBody (hResp) retornou vazio")
endif
return lAuth
A DLL é invocada na linha 44 do código acima!
Grato.
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 12:50
por Kapiaba
Tente assim:
Código: Selecionar todos
#ifdef __XHARBOUR__ // PERFEITO COM XHARBOUR( I Like )
Try
Try
Connection := CreateObject( 'MSXML2.XMLHTTP' )
Catch
Connection := CreateObject( 'Microsoft.XMLHTTP' )
End
Catch
MsgInfo( 'Erro na Criação do Serviço' )
RETURN NIL
End
#else // PERFEITO COM HARBOUR. ( no Like. kkkkk )
Try
Try
Connection := win_OleCreateObject( 'MSXML2.XMLHTTP' )
Catch
Connection := win_OleCreateObject( 'Microsoft.XMLHTTP' )
End
Catch
MsgInfo( 'Erro na Criação do Serviço! Com Harbour', 'Atenção!' )
RETURN NIL
End
#endif
Regards, saludos.
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 13:04
por Kapiaba
Veja este tópico no Fivewin Brasil, foi uma "briga" boa:
http://fivewin.com.br/index.php?/topic/ ... ent-285886
<Kapiaba> é o Kpeta. kkkkkkkkkkkkkkkkkkkkkkk
abs.
Regards, saludos.
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 13:14
por NiltonGM
Não existe esse comando TRY/CATCH no Harbour que uso (v3.2.0) com HMG UNICODE (v3.4.4). Vou substitiur o comando que você passou e ver se da certo.
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 13:17
por Kapiaba
Não existe esse comando TRY/CATCH no Harbour
Não sabia disso. Com FiveWin funciona de boas...
Abs.
Regards, saludos.
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 14:06
por NiltonGM
Kapiaba escreveu:Tente assim:
Código: Selecionar todos
#ifdef __XHARBOUR__ // PERFEITO COM XHARBOUR( I Like )
Try
Try
Connection := CreateObject( 'MSXML2.XMLHTTP' )
Catch
Connection := CreateObject( 'Microsoft.XMLHTTP' )
End
Catch
MsgInfo( 'Erro na Criação do Serviço' )
RETURN NIL
End
#else // PERFEITO COM HARBOUR. ( no Like. kkkkk )
Try
Try
Connection := win_OleCreateObject( 'MSXML2.XMLHTTP' )
Catch
Connection := win_OleCreateObject( 'Microsoft.XMLHTTP' )
End
Catch
MsgInfo( 'Erro na Criação do Serviço! Com Harbour', 'Atenção!' )
RETURN NIL
End
#endif
Regards, saludos.
Usei este comando Connection := CreateObject( 'Microsoft.XMLHTTP' ), deu o mesmo erro com excessão que trocou a dll msxml6 para msxml3.dll.
De qualquer forma, agradeço sua ajuda. O cliente fará um upgrade no PC e instalará o Windows 10 Pro, aí fica tudo resolvido.
Valeu e até a próxima!
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 15:04
por JoséQuintas
Atualize o Windows 7 pra ter canais seguros.
Precisa atualizar manualmente.
Não tem nada a ver ACBR funcionar ou não, ou em instalar HTTP 6.0 porque o W7 já tem.
A mensagem diz tudo: suporte a canais seguros
Procure atualização windows 7 TLS 1.2
Talvez... se a Microsoft não mudou... a bost. é que pra baixar isso, pode precisar funcionar canal seguro kkkkk
É sério: tudo na Microsoft virou canal seguro. Pra baixar a correção, pode precisar estar corrigido primeiro kkkk
MSXML2.ServerXMLHTTP.6.0 pode ser instalado no Win7
Enviado: 24 Nov 2023 19:29
por JoséQuintas
Talvez também precise atualizar certificados raiz, já que o W7 não atualiza mais.