Quais são os motivos pelos quais os pipes nomeados do Windows local falham?

12

Eu tenho trabalhado duro nesse dia todo e estou preso. Hoje de manhã nossos colegas asiáticos me ligaram porque um suplemento do SolidWorks para nosso sistema de gerenciamento de dados de produtos não podia se comunicar com o aplicativo principal local. O problema afeta os computadores de usuários finais em um domínio do Windows. Usamos os utilitários READPIPE e MAKEPIPE da caixa de ferramentas do SQL Server para descobrir que o problema subjacente era o recurso de canal do Windows.

  • O utilitário MAKEPIPE cria um canal e está aguardando por um cliente. O utilitário READPIPE retorna: "Falha ao Abrir Tubulação. Status 53." De acordo com o link , significa que o nome da rede não foi encontrado. No meu computador local, o pipe envia um "olá" do READPIPE para o MAKEPIPE sem problemas.
  • O processo do servidor que ativa os pipes nomeados em execução.
  • As configurações em HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Lanmanserver \ Parameters estão bem. Nenhuma configuração de firewall de canais.
  • O problema afeta alguns usuários, mas não todos. Não fizemos alterações nos grupos de domínios, exceto alguns grupos de compartilhamento de rede.
  • Eu fiz o login como administrador e ainda assim os canais não funcionam.

Qualquer ajuda é apreciada! Obrigado.

    
por user152700 16.08.2012 / 17:06

1 resposta

9

Necessário 1,5 dias para descobrir isso em todos os casos. Aqui para documentação.

Sintomas

  • O recurso arrastar e soltar nos aplicativos não funciona.
  • Comunicação entre processos, por ex. entre app principal e addins não funciona.

Causas / plano de fundo

A comunicação entre processos é implementada para alguns aplicativos através de pipes nomeados do Windows (não confundir com pipes de estilo do UNIX). Consulte a documentação da MSDN: link

Pode haver causas diferentes para os pipes de nomes do Windows não funcionarem. Para verificar se os canos são a causa do problema, as ferramentas MAKEPIPE e READPIPE podem ser usadas. Este artigo descreve o procedimento de teste: link O explorador de processos da ferramenta Sysinternals também pode ser útil para procurar quais canais estão atualmente abertos. Use a opção "Localizar - > Localizar identificador ou DLL ..." e digite o padrão "\ Device \ NamedPipe \". Ele mostrará a você quais processos têm quais tubos abertos. link

Solucionar problemas

Causa 1: o aplicativo está bloqueado pelo firewall de pipes

O Windows pode bloquear aplicativos de usar pipes nomeados. Esse firewall normalmente não está habilitado e é configurado por meio do registro. Veja o artigo de suporte da MS aqui: link . Verifique se o firewall de pipes não está habilitado ou adicione Keytech e todos os suplementos à lista de aplicativos permitidos.

Causa 2: o serviço de compartilhamento de arquivos e impressoras não está habilitado.

Os pipes nomeados são habilitados pelo processo que também controla o compartilhamento de arquivos e impressoras. Verifique se esse processo está sendo executado usando a ferramenta Serviços do Windows. O nome do serviço é mostrado como "Servidor" na lista de serviços. O nome do serviço é LanmanServer e o EXE é C: \ Windows \ system32 \ svchost.exe -k netsvcs

Causa 3: o firewall do Windows está bloqueando o LanmanServer

O firewall do Windows pode bloquear pipes nomeados mesmo quando eles são usados apenas para comunicação entre processos na mesma máquina. Especialmente as regras de firewall locais e de domínio podem causar um conflito. Duas entradas na lista “Programas permitidos pelo Firewall do Windows” indicam um conflito. Na maioria dos casos, esse problema pode ser resolvido usando a janela “Verificar status do firewall”. Se esta janela mostrar uma opção para definir regras de firewall recomendadas, os canais podem ser desbloqueados usando essa opção. Em combinação com regras de firewall de domínio, às vezes é necessário desconectar o PC primeiro do domínio e depois permitir o serviço de compartilhamento de arquivos e impressoras.

    
por 24.08.2012 / 11:09