Já tentou adicionar o usuário relevante ao grupo de usuários do DCOM local?
O servidor antigo é o Windows 2000 e a resposta do responsável pela configuração original para quase tudo era C: \ - > Todos - > Controlo total. No entanto, havia um documento de configuração, que parecia funcionar até certo ponto.
Server object error 'ASP 0178 : 80070005' Server.CreateObject Access Error /Include/fnLookups.asp, line 10 The call to Server.CreateObject failed while checking permissions. Access is denied to this object.
A linha 10 parece ser:
set objClient = Server.CreateObject("fooUser.CfooUser")
Eu troco para o log do sistema e tenho:
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID {280D5CF7-80A4-40AC-844C-FE3653F02FF1} to the user mydomain\myusername SID (mySID). This security permission can be modified using the Component Services administrative tool.
Isso é um progresso, está pegando o aplicativo COM e meu ID. Eu adicionei-me às "Permissões de Acesso" e "Ativar & Ativar Permissões" do objeto Meu Computador em dcomdnfg - mas meu latido parece estar direcionado para a árvore errada.
Corri o mskb198432 da melhor forma que pude, embora pareça direcionado a uma versão anterior, mas não há alegria também.
Todas as ideias são bem-vindas.
Editar - lista de sugestões testadas
Edit - Há algo que eu possa investigar no antigo servidor do windows 2k que possa dar uma ideia?
Já tentou adicionar o usuário relevante ao grupo de usuários do DCOM local?
Este erro é a pista:
As configurações de permissão específicas do aplicativo não concedem permissão de Ativação Local para o aplicativo COM Server com o CLSID {280D5CF7-80A4-40AC-844C-FE3653F02FF1} para o usuário mydomain \ myusername SID (mySID).
O objeto COM não deve estar sendo executado como você, ele deve estar em execução como o usuário IUSR_MachineName ou Network Service, o usuário que está executando o IIS. Você não quer que todo usuário que acessa o site esteja executando a DLL como eles - idéia ruim.
Certifique-se de que a permissão do diretório físico para o qual seu diretório virtual aponta para o usuário que está executando o IIS (IUSR_machinename) tenha as permissões corretas e a DLL registrada em COM tenha as permissões corretas para o usuário do IIS.
As permissões são difíceis de depurar no IIS, pois os eventos de segurança nem sempre são registrados no log de eventos de segurança. A autenticação & A ferramenta Access Control Diagnostics 1.0 é uma ótima ferramenta para investigar problemas de permissões.
Para ser completo, existe uma diferença entre a execução de um site como ASP.Net 1.0 e ASP.Net 2.0. Embora o framework seja compatível com versões anteriores, sugiro tentar executar o site como um site do Framework 1.1. Isso pode exigir o carregamento do Framework 1.1.
No entanto, o exemplo de código sugere que este é um ASP clássico. Portanto, o problema está relacionado à segurança no objeto COM. Certifique-se de que a DLL foi registrada e também existe a possibilidade de que o objeto para o qual você concedeu permissão dependa de outra DLL à qual você não concedeu acesso.
Além disso, reinicie o IIS e também o próprio Componente no servidor de componentes ao alterar a segurança ou quaisquer alterações para esse assunto. Ele geralmente precisa ser iniciado, devido ao cache de memória e outras razões estendidas.
De acordo com o blog da Tecnologia da Web da Microsoft, esse bug é causado pela segurança aprimorada do DCOM que foi introduzida no SP1 ou SP2 para Windows 2003.
Este blog tem um resumo detalhado deste problema e como resolvê-lo.
Como alguns usuários reclamaram, você não sabe se isso é asp clássico ou asp.net. Dito isto, indo com sua linha de assunto e mensagem de erro, aqui está meus 2 centavos
Esta é uma aplicação .NET
Parece que seu aplicativo está acessando um objeto COM, portanto, certifique-se de que o processo de trabalho do IIS tenha acesso a esse componente. Você pode tentar executar FILEMON e REGMON para descobrir exatamente qual componente é o culpado. Se o componente estiver na pasta Arquivos de programas / pasta comum, verifique se as permissões corretas estão definidas nessa pasta.
Acessar componentes COM no ASP.NET ou até mesmo no Classis ASP geralmente é um B .... para solucionar problemas.
Este é um aplicativo ASP clássico, não um aplicativo ASP.NET. Verifique se o pool de aplicativos do IIS que hospeda esse aplicativo está sendo executado no contexto do usuário que você criou. Além disso, certifique-se de que o aplicativo não esteja em nenhum outro pool de aplicativos que hospede aplicativos ASP.NET.
Como outros já disseram, este é um problema clássico de ASP e COM - parece não ter nada a ver com o .NET.
Tudo o que posso adicionar ao que foi dito é não se esqueça de garantir que o usuário tenha acesso ao objeto COM DLL no sistema de arquivos.
I added myself to the "Access Permissions" and "Launch & Activation Permissions" of the My Computer object in dcomcnfg
Existem duas configurações de segurança diferentes em Meu computador - limites e padrões. Você precisa verificar que editou os Padrões e que os Limites são pelo menos superiores aos seus Padrões (embora, IIRC, Todos possam ter Ativação Local).
Você também deve detalhar o próprio componente e verificar se está usando a segurança Padrão. Se for personalizado, você também precisará editá-lo (mantendo os limites em mente).
Para a solução de problemas, ficaria extremamente tentado a conceder permissões de ativação e inicialização local a todos para ter certeza de que é um problema de permissões COM. IIRC, os erros na inicialização do componente podem conter mensagens de erro enganosas que o manterão coçando a cabeça por algum tempo.
Editar: você também deve certificar-se de que o GUID mencionado no log de eventos seja realmente o componente que você acha que é. Use o Regedit para encontrar o GUID e verifique o AppName. É possível que não seja o componente instalado, mas uma dependência.
Tente dar "Serviço de Rede" um acesso ao diretório "Temp" (C: \ WINDOWS \ Temp)
Espero que isso ajude; -)
Você está executando o pool de aplicativos como sua conta (mydomain \ myusername)? Em caso afirmativo, você precisará adicionar essa conta ao IIS_WPG.
Você também pode querer adicionar IIS_WPG ao grupo "Usuários COM Distribuídos" ou localizar o item real nos Serviços de Componentes e conceder diretamente acesso ao IIS_WPG
O processo de trabalho ASP.Net w3wp.exe por padrão é executado na conta NETWORK SERVICE
no W2K3.
Verifique se esta conta tem o direito de acessar e instanciar o objeto em questão.
Eu estava lidando com isso na semana passada. Você precisa garantir que o usuário ASPNET (sim, eu sei que é asp clássico) tem direitos para "Fazer logon como um trabalho em lotes" e "Fazer logon como um serviço".
Em Ferramentas de administração, Política de segurança local, abra Políticas locais - > Atribuição de direitos de usuário e certifique-se de que o usuário do aspnet tenha direitos sobre essas políticas.
Provavelmente não faria mal adicionar IWAM_ e IUSR_ também.
Você pode querer passar pelo KB 899965 , ele tem algumas etapas bastante detalhadas e parece que pode ser um pouco mais específico para o seu problema.
Espero que ajude!
Além das outras sugestões, eu também tentaria executar o site no modo de isolamento do IIS 5 para descartar as diferenças entre o IIS 5 (Server 2000) e o IIS 6 (Server 2003) mais seguro.
Tags windows-server-2003 iis iis-6 com asp