Usuário com melhor resposta
Access is denied

Pergunta
-
Boa tarde a todos,
Estou enfrentando um problema com o COM+, que gera erro "Access is denied".
Possuo uma DLL desenvolvida em VB.Net (COMClass) e portada para o COM+ através do comando: regsvcs /fc MinhaDLL.dll Este comando eu executo no Servidor1.
A partir deste ponto, solicito a criação de um "Export" para criar uma classe proxy para ser instalada em outro servidor, Servidor2.
No momento de gerar o Export, quando seleciono o item "Server Application", e instalo o Export no Servidor2, tudo funciona correto. Neste ponto entendo que a dll foi instalada no Servidor2, mas, não gera proxy ficando tudo local no Servidor2.
Mas, quando seleciono Application Proxy e instalo no Servidor2, toda vez que minha aplicação VB.Net vai instanciar a classe, gera o erro "Access is denied". Desta forma, realmente existe um proxy entre as duas máquinas.
Por favor, alguém sabe como isso pode ser corrigido?
Para adiantar e que não funcionou:
- Já atribuí o usuário servidor da máquina Servidor1;
- Já atribuí o usuário na pasta física onde está a dll no Servidor1.
Muito obrigado,
José Roberto Ferro.
Respostas
-
Oi Dennes,
Consegui fazer funcionar. Existiam mais detalhes que eu desconhecia.
Veja se bate com o seu conhecimento e também do pessoal:
- Componente VB.Net (COMClass), mas utilizando parametros string(,) multidimensional. Não sei exatamente o porque disso, mas, quando voltei a utilizar parametro string simples, funcionou;
- Atribuir um usuário/senha específico noServidor1, exportar o pacote, criar o mesmo usuário/senha no Servidor2, registrar o Export, configurar o usuário/senha para o pacote.
Fazendo isso, o meu componente funcionou corretamente.
Como desde o início da programação optei por utilizar parametro multidimensional, isso foi a última coisa que pensei em alterar.
Quando mudei para parametro simples, funcionou.
Muito obrigado pela ajuda e fica a dica para quem precisar.
Abraços,
José Roberto Ferro
Todas as Respostas
-
-
Oi Dennes,
Quando desabilito a segurança, ocorre outro erro:
Exception from HRESULT: 0x80131040
E o Stack Trace da página é:
[FileLoadException: Exception from HRESULT: 0x80131040.]
System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(....)
System.EnterpriseServices.Thunk.Proxy.CoCreateObject(.....)
System.EnterpriseServices.ServicedComponentProxyAttribute.CreateInstance(.....)
System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(.....)
Pagina.Button1_Click(...)
....
E por aí vai.
Os outros tipos de segurança, geram o erro inicial: Access is denied.
Alguma outra sugestão?
Uma literatura para este tipo de problema na Internet é muito difícil de achar.
Muito obrigado,
José Roberto Ferro.
-
-
-
Oi Dennes,
Consegui fazer funcionar. Existiam mais detalhes que eu desconhecia.
Veja se bate com o seu conhecimento e também do pessoal:
- Componente VB.Net (COMClass), mas utilizando parametros string(,) multidimensional. Não sei exatamente o porque disso, mas, quando voltei a utilizar parametro string simples, funcionou;
- Atribuir um usuário/senha específico noServidor1, exportar o pacote, criar o mesmo usuário/senha no Servidor2, registrar o Export, configurar o usuário/senha para o pacote.
Fazendo isso, o meu componente funcionou corretamente.
Como desde o início da programação optei por utilizar parametro multidimensional, isso foi a última coisa que pensei em alterar.
Quando mudei para parametro simples, funcionou.
Muito obrigado pela ajuda e fica a dica para quem precisar.
Abraços,
José Roberto Ferro