Estou muito feliz hoje, o projeto finalmente está online. Acontece que os problemas encontrados antes de entrar online eram exaustivos. . . Mas finalmente foi resolvido. . Deixe-me contar o problema aqui, na esperança de fornecer alguma ajuda aos amigos necessitados ~~
Projeto: projeto DOTNET, desenvolvimento em C#, a principal função é acessar a interface remota através de componentes COM.
Ambiente operacional: Windows 2003 Server + IIS6.0 + .Net 1.1
Problema: Componentes e sistemas COM podem ser usados normalmente no sistema operacional WINDOWS2000, mas após a migração para WIN2003, o processo fica preso quando o programa chama os componentes e, às vezes, um erro indicando que o servidor encontrou uma situação inesperada será retornado ~
Análise da causa: Em primeiro lugar, o componente passou para outros sistemas operacionais, indicando que não deve haver nenhum problema com o componente, os métodos de registro dos componentes COM e referência do projeto DOTNET estão corretos, mas o erro ocorre na etapa de chamada do componente; , e a função do componente COM é passar o endereço IP e a porta. Para acessar a interface remota, preste atenção ao trabalho de uma conexão de rede remota. Procurando por problemas semelhantes na Internet, a maioria dos artigos é sobre permissões de componentes. Também configurei os componentes de acordo com o artigo, e as permissões dos usuários de acesso IIS, etc. são dadas ao máximo, mas o resultado ainda não funciona. . Prestes a entrar em colapso. .
Solução: Depois de ser torturada por esse problema por alguns dias, a empresa entrou em contato com o suporte ao cliente da Microsoft, e a Microsoft deu uma maneira de verificar as permissões de segurança do pool de aplicativos no IIS6.0. Após a verificação, nas propriedades do pool de aplicativos no IIS, há uma conta de segurança padrão "Serviço de Rede" na guia "Identidade", que é Serviço de Rede. O Serviço de Rede é uma conta interna do Windows Server 2003. Ele pertence ao grupo IIS_WPG. Os membros do IIS_WPG possuem permissões NTFS apropriadas e permissões de usuário necessárias. De acordo com o artigo no site da Microsoft, a conta do Serviço de Rede possui processos que atuam como. Processos de trabalho do IIS 6 Permissões suficientes para identificar e ter acesso à rede. Mas não sei por que, as permissões do NetWork Service aqui não são suficientes, então o componente não pode ser chamado para acessar a interface remota. A solução é definir a conta IIS_WPG para leitura e execução, listar diretórios de pastas, leitura e SERVIÇO DE REDE requer permissões de controle total. De acordo com o método acima, atribuí o serviço de rede ao grupo Administrador ^_||, reiniciei o IIS e executei o programa OK, e o componente foi chamado normalmente ~~
Portanto, se algum amigo encontrar essa chamada de componentes COM, não poderá ser. usado novamente, considere aplicar permissões do pool de programas ~~
Consulte os seguintes artigos: http://www.microsoft.com/china/technet/community/columns/insider/iisi1203.mspx
http://flyskywlh.cnblogs.com /archive/2006/07/07 /445508.html