Exportar componentes DCOM

Delphi

20/12/2005

Tenho uma aplicacao n-camadas usando DataSnap + DbExpress para acesso a dados.
Na maquina em que estou desenvolvendo tudo funciona perfeitamente, mas estou com problemas na hora de destribuir o sistema.
Consigo exportar o servidor que gera um arquivo *.msi, mas na hora de instalar esse arquivo da um erro: ´Error registering COM+ application´.
Alguem poderia me explicar melhor como distribuir esse tipo de aplicacao?


Danilodcf

Danilodcf

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

20/12/2005

você precisa ter em mãos o .msi e o .cab


GOSTEI 0
Danilodcf

Danilodcf

20/12/2005

Tudo certo emerson, consegui instalar os arquivos msi, tanto para o cliente quanto para o servidor. Estava faltando copiar a midas.dll para a pasta system32.
O problema agora eh na hora de fazer a conexao com o servidor de aplicativo (estou usando o TDCOMConection no cliente), esta dando um erro: ´interface not supported´.
Já registrei a midas.dll, mas nao resolveu o problema.
O que sera que está faltando configurar?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

20/12/2005

tanto para o cliente quanto para o servidor?

o objeto COM deveria ser instalado somente no servidor.

eu não sei te dizer o que acontece com o DCOMConnection. não conheço suas necessidades/requerimentos, pois trabalho com SocketConnection.


GOSTEI 0
Danilodcf

Danilodcf

20/12/2005

Qual a diferenca entre o DCOMConection e o SocketConection? (vantagens e desvantagens)
Tem como conectar um ClientDataSet a Provider do servidor usando SocketConection?


GOSTEI 0
Pain_elemental

Pain_elemental

20/12/2005

O .msi nao deve estar publicando os componentes do midas, ela nao precisa apenas estar registrada, tem que estar distribuída.

Importe is componentes dentro do seu aplicativo de servidor (os componentes Borland Midas.*) ou dentro de um novo aplicativo e defina as permissoes. Você pode fazer isso em Ferramentas Administrativas -> Serviços de componentes.


GOSTEI 0
Faster_rj

Faster_rj

20/12/2005

Diferença entre o Socket e o DcomConnection.

O socket utiliza um protocolo da Borland e por isso necessita do Socket Server rodando no servidor. (é mais rápido)

O DcomConnection é da Microsoft e o Windows já tras o servidro embutido.

Mas os dois tem problemas com performance.

´Interface not suported´ - para corrigir este problema você deve registrar o arquivo .TLB na maquina cliente.

Acho que não deve ser registrado, exportado, NENHUM componente para o CLIENTE. Tem que funcionar perfeitamente sem registrar.

Eu não utilizo NENHUM dos dois componentes da BORLAND.

Eu importo a TypeLibrary para o projeto cliente, e utilizo da seguinte forma.
MeuObjeto: IMinhaInterface;
MeuObjeto := COClassMinha.CreateRemote(servidor);

O unico porblema é ter que registrar o TLB em TODOs os clientes mas é MUITOOOO mais rápido e para trabalhar você tem o CODE COMPLETION!

abração!


GOSTEI 0
POSTAR