Apa alasan kegagalan pipa bernama Windows lokal?

14

Saya telah bekerja keras untuk hal ini sepanjang hari dan saya mandek. Pagi ini, kolega-kolega Asia kami menelepon saya karena addin SolidWorks untuk sistem manajemen data produk kami tidak dapat berkomunikasi dengan aplikasi utama lokal. Masalahnya memengaruhi komputer pengguna akhir di domain Windows. Kami menggunakan utilitas READPIPE dan MAKEPIPE dari kotak alat SQL server untuk mengetahui bahwa masalah yang mendasarinya adalah fitur pipa Windows.

  • Utilitas MAKEPIPE membuat pipa dan sedang menunggu klien. Utilitas READPIPE mengembalikan: "Gagal Membuka Pipa. Status 53." Menurut http://support.microsoft.com/kb/110905 itu berarti nama jaringan tidak ditemukan. Di komputer lokal saya pipa mengirimkan "halo" dari READPIPE ke MAKEPIPE tanpa masalah.
  • Proses server yang memungkinkan pipa bernama sedang berjalan.
  • Pengaturan di bawah HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Lanmanserver \ Parameter terlihat oke. Tidak ada pengaturan firewall pipa.
  • Masalahnya memengaruhi beberapa pengguna tetapi tidak semua. Kami tidak membuat perubahan pada grup domain kecuali untuk beberapa grup berbagi jaringan.
  • Saya masuk sebagai administrator dan tetap saja pipanya tidak berfungsi.

Bantuan apa pun dihargai! Terima kasih.

pengguna152700
sumber
Apakah pengguna yang terpengaruh dapat terhubung ke berbagi file biasa di server yang dimaksud?
Harry Johnston
Tidak ada masalah dengan saham saat ini. Ini bukan masalah server / klien. Kedua proses berada di komputer yang sama.
user152700
Saat Anda mereproduksi masalah, masuk ke komputer yang terpengaruh sebagai Administrator, dengan READPIPE dan MAKEPIPE, apa saja perintah persis yang Anda gunakan? (Harap edit posting Anda untuk memasukkannya daripada memasukkannya ke dalam komentar.)
Harry Johnston
Terima kasih atas dukunganmu. Ini yang sulit dan saya akan mendokumentasikan solusinya di sini.
user152700

Jawaban:

12

Diperlukan 1,5 hari untuk mencari tahu untuk setiap kasus. Sini untuk dokumentasi.

Gejala

  • Seret & Jatuhkan ke aplikasi tidak berfungsi.
  • Komunikasi antarproses misalnya antara aplikasi utama dan addins tidak berfungsi.

Penyebab / latar belakang

Komunikasi antarproses diimplementasikan untuk beberapa aplikasi melalui Windows yang bernama pipa (jangan dikacaukan dengan pipa gaya UNIX). Lihat dokumentasi MSDN: http://msdn.microsoft.com/en-us/library/aa365590.aspx

Mungkin ada penyebab berbeda untuk pipa nama Windows tidak berfungsi. Untuk memverifikasi bahwa pipa adalah penyebab masalah, alat MAKEPIPE dan READPIPE dapat digunakan. Artikel KB ini menjelaskan prosedur pengujian: http://support.microsoft.com/kb/68941 Penjelajah proses alat Sysinternals mungkin juga berguna untuk mencari pipa mana yang saat ini dibuka. Gunakan opsi "Temukan -> Temukan Gagang atau DLL ..." dan masukkan pola "\ Device \ NamedPipe \". Ini akan menunjukkan kepada Anda proses mana yang memiliki pipa terbuka. http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Pecahkan masalah

Penyebab 1: Aplikasi diblokir oleh firewall Pipa

Windows dapat memblokir aplikasi dari menggunakan pipa bernama. Firewall ini biasanya tidak diaktifkan dan dikonfigurasi melalui registri. Lihat artikel dukungan MS di sini: http://support.microsoft.com/kb/925890 . Periksa apakah firewall pipa tidak diaktifkan atau tambahkan Keytech dan semua addins ke daftar aplikasi yang diizinkan.

Penyebab 2: Layanan berbagi file dan Printer tidak diaktifkan.

Pipa bernama diaktifkan oleh proses yang juga mengontrol berbagi file dan printer. Periksa apakah proses ini berjalan menggunakan alat Layanan Windows. Nama layanan ditampilkan sebagai "Server" dalam daftar layanan. Nama layanan adalah LanmanServer dan EXE adalah C: \ Windows \ system32 \ svchost.exe -k netsvcs

Penyebab 3: Firewall Windows memblokir LanmanServer

Windows firewall dapat memblokir pipa bernama bahkan ketika mereka hanya digunakan untuk komunikasi antar-proses pada mesin yang sama. Terutama aturan domain dan firewall lokal dapat menyebabkan konflik. Dua entri dalam daftar "Program yang Diperbolehkan Windows Firewall" mengindikasikan adanya konflik. Dalam kebanyakan kasus masalah ini dapat diselesaikan dengan menggunakan jendela "Periksa status firewall". Jika jendela ini menunjukkan opsi untuk menetapkan aturan firewall yang disarankan, pipa seringkali dapat diblokir menggunakan opsi ini. Dalam kombinasi dengan aturan firewall domain, kadang-kadang perlu untuk tidak bergabung dengan PC terlebih dahulu dari domain dan kemudian mengizinkan layanan berbagi file dan printer.

pengguna152700
sumber
3
Penyebab 1) Firewall pipa hanya memengaruhi akses jarak jauh ke pipa bernama. Namun, perlu diketahui bahwa menyambung ke pipa bernama menggunakan \\ machinename \ pipename mungkin dianggap sebagai akses jarak jauh bahkan jika machinename adalah mesin lokal.
Harry Johnston
3
Penyebab 2) Demikian pula, berbagi file dan printer hanya diperlukan untuk akses jarak jauh ke pipa bernama. Sekali lagi, \\ machinename \ pipename mungkin dianggap sebagai akses jarak jauh untuk tujuan ini.
Harry Johnston
Penyebab 3) Windows Firewall seharusnya tidak dapat memblokir koneksi lokal, bahkan jika menggunakan \\ machinename \ pipename. Namun, jika Anda berada di domain dan Windows Firewall salah konfigurasi, Anda mungkin mengalami masalah yang lebih luas, mungkin terkait dengan otentikasi.
Harry Johnston
@ HarryJohnston Jenis otentikasi apa yang bisa diblokir? Seperti yang ServiceHost.Authenticationdijelaskan di sini ?
iCantSeeSharp
Jika Anda berada di domain, dan akses jaringan Anda ke pengontrol domain diblokir oleh Windows Firewall (atau karena alasan lain), Anda mungkin tidak dapat mengautentikasi. Itu seharusnya tidak benar-benar mempengaruhi akses pipa lokal, tetapi YMMV.
Harry Johnston