Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows Yönetim Araçları'na (WMI) veya Microsoft SQL Server'a bağlandığınızda, Uzaktan Yordam Çağrısı (RPC) oturumu sırasında veya çeşitli Microsoft Yönetim Konsolu (MMC) ek bileşenlerini kullandığınızda "RPC sunucusu kullanılamıyor" hatasıyla karşılaşabilirsiniz. Aşağıdaki görüntüde RPC hatası örneği gösterilmektedir.
Bu, başarıyla sorun giderme işlemiyle ilgili temel bilgiler gerektiren yaygın bir ağ hatasıdır. Başlamak için, anlaşılması gereken birkaç önemli terim vardır:
- Uç nokta eşleyici (EPM): Sunucuda dinleyen ve bağlantı noktası ve UUID bilgilerini kullanarak istemci uygulamalarını sunucu uygulamalarına yönlendiren bir hizmet. Hizmet, istemci isteklerine yanıt olarak dinamik uç noktaları çözümleyen RPC alt sisteminin bir parçasıdır. Bazı durumlarda, sunuculara dinamik olarak uç noktalar atar.
- Kule: İstemci ve sunucunun bir bağlantı anlaşması yapmasını sağlamak için RPC protokolunu açıklar.
- Katlar: Bağlantı noktaları, IP adresleri ve tanımlayıcılar gibi belirli verileri içeren bir kuledeki içindekiler katmanları.
- UUID: RPC uygulamasını tanımlayan iyi bilinen bir GUID. Sorun giderme sırasında, tek bir uygulama türünün RPC konuşmalarını izlemek için UUID kullanabilirsiniz (aynı anda tek bir bilgisayarda gerçekleşen birçok tür arasında).
- Opnum: İstemcinin sunucunun gerçekleştirmesini istediği bir işlevi tanımlar. Bu yalnızca onaltılık bir sayıdır. Ancak, iyi bir ağ çözümleyicisi işlevi sizin için çevirir. İşlev tanımlanamıyorsa uygulama satıcınıza başvurun.
- Bağlantı noktası: İstemci veya sunucu uygulaması için iletişim uç noktası. EPM, istemcilerin ve sunucuların kullanması için dinamik bağlantı noktaları (yüksek bağlantı noktaları veya kısa ömürlü bağlantı noktaları olarak da bilinir) ayırır.
Not
Bağlantı noktası numarası genellikle sorun giderme için kullanacağınız en önemli bilgilerdir.
- Saplama verileri: İstemcideki işlevlerle sunucudaki işlevler arasında değiştirilen veriler. Bu veriler, iletişimin önemli bir parçası olan yükdür.
Bağlantı nasıl çalışır?
Aşağıdaki diyagramda, uzak işlemi çalıştırmak için sunucuya bağlanan bir istemci gösterilmektedir. İstemci başlangıçta sunucuda 135 numaralı TCP bağlantı noktasıyla iletişim kurar ve ardından dinamik bağlantı noktası numarası için EPM ile anlaşma gerçekleştirir. EPM bir bağlantı noktası atadıktan sonra istemci bağlantıyı keser ve ardından sunucuya bağlanmak için dinamik bağlantı noktasını kullanır.
Önemli
Güvenlik duvarı istemciyle sunucuyu ayırırsa, güvenlik duvarının 135 numaralı bağlantı noktasında ve EPM'nin atadığı dinamik bağlantı noktalarında iletişime izin vermesi gerekir. Bu senaryonun yönetimine yönelik bir yaklaşım, EPM'nin kullanacağını bağlantı noktalarını veya bağlantı noktası aralıklarını belirtmektir. Daha fazla bilgi için bkz . RPC'nin dinamik bağlantı noktalarını ayırma biçimini yapılandırma.
Bazı güvenlik duvarları UUID filtrelemesine de izin verir. Bu senaryoda, bir RPC isteği güvenlik duvarını geçmek ve EPM'ye başvurmak için 135 numaralı bağlantı noktasını kullanırsa, güvenlik duvarı istekle ilişkili UUID değerini not alır. EPM yanıt verdiği ve bu UUID için dinamik bir bağlantı noktası numarası gönderdiğinde, güvenlik duvarı bağlantı noktası numarasını da not alır. Güvenlik duvarı daha sonra bu UUID ve bağlantı noktası için RPC bağlama işlemlerine izin verir.
RPC'nin dinamik bağlantı noktalarını ayırma biçimini yapılandırma
Varsayılan olarak, EPM dinamik bağlantı noktalarını TCP ve UDP için yapılandırılan aralıktan rastgele ayırır (kullanılan işletim sisteminin uygulanmasına bağlı olarak). Ancak bu yaklaşım, özellikle istemci ve sunucunun bir güvenlik duvarı üzerinden iletişim kurması gerekiyorsa pratik olmayabilir. Alternatif bir yöntem, EPM'nin kullanması için bir bağlantı noktası numarası veya bağlantı noktası numarası aralığı belirtmek ve bu bağlantı noktalarını güvenlik duvarında açmaktır.
RPC kullanan birçok Windows server uygulaması, izin verilen bağlantı noktalarını özelleştirmek için seçenekler (kayıt defteri anahtarları gibi) sağlar. Windows hizmetleri bu görev için HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\Internet alt anahtarını kullanır.
Bir bağlantı noktası veya bağlantı noktası aralığı belirttiğinizde, yaygın olarak kullanılan bağlantı noktaları aralığının dışında olan bağlantı noktalarını kullanın. Windows'da kullanılan sunucu bağlantı noktalarının kapsamlı bir listesini ve windows için hizmete genel bakış ve ağ bağlantı noktası gereksinimleri bölümünden büyük Microsoft ürünlerini bulabilirsiniz. Makalede ayrıca RPC sunucu uygulamaları listelenir ve RPC çalışma zamanının özelliklerinin ötesinde özel sunucu bağlantı noktalarını kullanmak üzere hangi RPC sunucu uygulamalarının yapılandırılacağından bahsediliyor.
Önemli
Bu bölüm, yöntem veya görev, kayıt defterini nasıl değiştireceğinizin anlatıldığı adımları içermektedir. Ancak kayıt defterini hatalı biçimde değiştirirseniz önemli sorunlar oluşabilir. Bu nedenle, bu adımları dikkatli bir şekilde izlediğinizden emin olun. Koruma amacıyla, bir sorun oluştuğunda kayıt defterini geri yükleyebilmek için kayıt defterini değiştirmeden önce yedekleyin. Kayıt defterini yedekleme ve geri yükleme hakkında daha fazla bilgi için bkz. Windows'ta kayıt defterini yedekleme ve geri yükleme.
Varsayılan olarak, İnternet anahtarı yoktur. Bu nedenle, oluşturmanız gerekir. İnternet anahtarı için aşağıdaki girdileri yapılandırabilirsiniz:
bağlantı noktaları REG_MULTI_SZ: Bir bağlantı noktası veya kapsayıcı bağlantı noktası aralığı belirtir. İnternet altında görüntülenen diğer girişler, bunların kullanılacak bağlantı noktaları mı yoksa kullanım dışında tutulacak bağlantı noktaları mı olduğunu gösterir.
- Değer aralığı: 0 - 65535
Örneğin, 5984 tek bir bağlantı noktasını, 5000–5100 ise bir bağlantı noktası kümesini temsil eder. Herhangi bir değer 0 ile 65535 arasında değilse veya herhangi bir değer yorumlanamazsa, RPC çalışma zamanı tüm yapılandırmayı geçersiz olarak kabul eder.
- Değer aralığı: 0 - 65535
PortsInternetAvailable REG_SZ: Bağlantı noktaları değerinin eklenecek bağlantı noktalarını mı yoksa hariç tutulacak bağlantı noktalarını mı temsildiğini belirtir.
- Değerler: Y veya N (büyük/küçük harfe duyarlı değil)
- Y: Bağlantı noktaları girişinde listelenen bağlantı noktaları , o bilgisayardaki EPM tarafından kullanılabilen tüm bağlantı noktalarını temsil eden bağlantı noktalarıdır.
- N: Bağlantı noktaları girişinde listelenen bağlantı noktaları , EPM tarafından kullanılamamış olan tüm bağlantı noktalarını gösterir.
- Değerler: Y veya N (büyük/küçük harfe duyarlı değil)
UseInternetPorts REG_SZ: Varsayılan sistem ilkesini belirtir.
- Değerler: Y veya N (büyük/küçük harfe duyarlı değil)
- Y: Varsayılan sistem ilkesini kullanan işlemlere, önceden tanımlandığı gibi İnternet'ten kullanılabilir bağlantı noktaları kümesinden bağlantı noktaları atanır.
- N: Varsayılan sistem ilkesini kullanan işlemlere yalnızca intranet bağlantı noktaları kümesinden bağlantı noktaları atanır.
- Değerler: Y veya N (büyük/küçük harfe duyarlı değil)
5000 numaralı bağlantı noktasından büyük bir bağlantı noktası aralığı açmalısınız. 5000'den küçük bağlantı noktası numaraları diğer uygulamalar tarafından zaten kullanılıyor olabilir ve DCOM uygulamalarınızla çakışmalara neden olabilir. Ayrıca, önceki deneyim en az 100 bağlantı noktasının açılması gerektiğini gösteriyor. Bunun nedeni, çeşitli sistem hizmetlerinin birbiriyle iletişim kurmak için bu RPC bağlantı noktalarına güvenmesidir.
Not
Gereken en düşük bağlantı noktası sayısı bilgisayardan bilgisayara farklılık gösterebilir. RPC dinamik bağlantı noktaları kısıtlanırsa, daha fazla trafiği destekleyen bilgisayarlar bağlantı noktası tükenmesi ile karşılaşabilir. Bağlantı noktası aralığını kısıtlarsanız bunu dikkate alın.
Uyarı
Bağlantı noktası yapılandırmasında hata varsa veya havuzda yeterli bağlantı noktası yoksa, EPM dinamik uç noktaları kullanan RPC sunucu uygulamalarını (Netlogon gibi Windows hizmetleri dahil) kaydedemez. Yapılandırma hatası oluşursa, hata kodu 87 (0x57) ERROR_INVALID_PARAMETER olur. Örneğin, yeterli bağlantı noktası yoksa Netlogon 5820 olayını günlüğe kaydeder:
Günlük Adı: Sistem
Kaynak: NETLOGON
Olay Kimliği: 5820
Düzey: Hata
Anahtar Sözcükler: Klasik
Açıklama:
Netlogon hizmeti AuthZ RPC arabirimini ekleyemedi. Hizmet sonlandırıldı. Şu hata oluştu: 'Parametre yanlış.'
RPC'nin nasıl çalıştığı hakkında daha fazla bilgi için bkz . BT/Pro üzerinden RPC.
Özel bağlantı noktası yapılandırması örneği
Bu örnekte, yeni kayıt defteri girdilerinin nasıl yapılandırılabildiğini göstermeye yardımcı olmak için 5000 ile 6000 (dahil) arasında bağlantı noktaları rastgele seçilmiştir. Bu örnek, belirli bir sistemin gerektirdiği en az sayıda bağlantı noktası önerisi değildir. Böyle bir yapılandırma için HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc altında İnternet anahtarının eklenmesi ve aşağıdaki girişlerin eklenmesi gerekir:
- Bağlantı noktaları MULTI_SZ
- Veri türü: MULTI_SZ
- Değer: 5000-6000
- PortsInternetAvailable REG_SZ
- Veri türü: REG_SZ
- Değer: Y
- UseInternetPorts REG_SZ
- Veri türü: REG_SZ
- Değer: Y
Bu yapılandırmanın etkili olması için bilgisayarın yeniden başlatılması gerekir. Bundan sonra, RPC kullanan tüm uygulamalara 5000 ile 6000 (dahil) aralığında dinamik bağlantı noktaları atanır.
RPC hatalarını giderme
PortQry
PortQry , ağ izleme verilerini araştırmadan önce RPC'nin nasıl çalıştığını gösteren hızlı içgörüler sağlar. İstemci bilgisayarda aşağıdaki komutu çalıştırarak bağlantı oluşturup oluşturamayacağınızı hızla belirleyebilirsiniz:
Portqry.exe -n <ServerIP> -e 135
Not
Bu komutta, <ServerIP> iletişim kurduğun sunucunun IP adresini temsil eder.
Örneğin, aşağıdaki komutu göz önünde bulundurun:
Portqry.exe -n 10.10.10.10 -e 135
Bu komut aşağıdaki alıntıya benzer bir çıkış oluşturur:
Querying target system called:
10.10.10.10
Attempting to resolve IP address to a name...
IP address resolved to RPCServer.contoso.com
querying...
TCP port 135 (epmap service): LISTENING
Using ephemeral source port
Querying Endpoint Mapper Database...
Server's response:
UUID: d95afe70-a6d5-4259-822e-2c84da1ddb0d
ncacn_ip_tcp:10.10.10.10[49664]
Bu çıkışı inceleyerek aşağıdaki bilgileri belirleyebilirsiniz:
- DNS düzgün çalışıyor (IP adresini tam etki alanı adına (FQDN) çözdü).
- PortQry, hedef bilgisayardaki RPC bağlantı noktasına (135) başvurdu.
- EPM, PortQry'ye yanıt verdi ve sonraki iletişim için dinamik bağlantı noktası 49664'e (köşeli ayraç içine alınmış) atadı.
- PortQry, 49664 numaralı bağlantı noktasına yeniden bağlandı.
Bu adımlardan herhangi biri başarısız olursa, genellikle sonraki bölümde açıklandığı gibi eşzamanlı ağ izlemeleri toplamaya başlayabilirsiniz.
PortQry hakkında daha fazla bilgi için bkz . PortQry komut satırı aracını kullanma.
Netsh
İstemcide ve sunucuda ağ izleme verilerini aynı anda toplamak için Windows netsh aracını kullanabilirsiniz.
Eşzamanlı ağ izlemelerini toplamak için hem istemcide hem de sunucuda yükseltilmiş bir Komut İstemi penceresi açın.
İstemcide aşağıdaki komutu çalıştırın:
Netsh trace start scenario=netconnection capture=yes tracefile=c:\client_nettrace.etl maxsize=512 overwrite=yes report=yes
Sunucuda aşağıdaki komutu çalıştırın:
Netsh trace start scenario=netconnection capture=yes tracefile=c:\server_nettrace.etl maxsize=512 overwrite=yes report=yes
Şimdi sorununuzu istemci bilgisayarda yeniden oluşturmayı deneyin. Ardından, izlemeleri durdurmak için her iki penceredeki komut isteminde aşağıdaki komutu çalıştırın:
Netsh trace stop
İzleme dosyalarını Microsoft Ağ İzleyicisi 3.4 veya İleti Çözümleyicisi'nde açın ve izleme verilerini sunucu veya istemci bilgisayarların IP adresi ve TCP bağlantı noktası 135 için filtreleyin. Örneğin, aşağıdaki gibi filtre dizelerini kullanın:
Ipv4.address==<client-ip> ve ipv4.address==<server-ip> ve tcp.port==135
Bu filtre dizesinde istemci-ip>, <istemcinin IP adresini,< sunucu-ip> ise sunucunun IP adresini temsil eder.
tcp.port==135
Filtrelenen verilerde Protokol sütununda EPM girişini arayın.
EPM'den (sunucuda) dinamik bağlantı noktası numarası içeren bir yanıt arayın. Dinamik bağlantı noktası numarası varsa, daha sonra başvurmak için not edin.
Dinamik bağlantı noktası numarası ve sunucu IP adresi için izleme verilerini yeniden filtreleyin. Örneğin, tcp.port==dynamic-port-allocated> ve ipv4.address==<server-ip> gibi bir filtre dizesi kullanın.< Bu filtre dizesinde dynamic-port-allocated> dinamik< bağlantı noktası numarasını, sunucu-ip> ise <sunucunun IP adresini temsil eder.
Filtrelenen verilerde, istemcinin dinamik bağlantı noktasına başarıyla bağlandığını gösteren kanıt arayın veya oluşmuş olabilecek ağ sorunlarını arayın.
Bağlantı noktasına ulaşılamıyor
"RPC sunucusu kullanılamıyor" hatalarının en yaygın nedeni, istemcinin ayrılan dinamik bağlantı noktasına bağlanamamasıdır. İstemci tarafı izlemesi daha sonra dinamik bağlantı noktası için TCP SYN yeniden aktarımlarını gösterir.
Bu davranış, aşağıdaki koşullardan birinin iletişimi engellediğini gösterir:
- Dinamik bağlantı noktası aralığı ortamdaki güvenlik duvarında engellenir.
- Ortadaki bir cihaz paketleri bırakıyor.
- Hedef sunucu paketleri bırakıyor. Bu koşula Windows Filtreleme Platformu (WFP) paket bırakma, Ağ Arabirim Kartı (NIC) paket bırakma veya filtre sürücüsü değişiklikleri gibi yapılandırmalar neden olabilir.
Daha ayrıntılı sorun giderme için veri toplama
Microsoft desteğine başvurmadan önce, sorununuz hakkında bilgi toplamanızı öneririz.
Önkoşullar
Bu yordamlarda TroubleShootingScript (TSS) araç takımı kullanılır. Bu araç takımını kullanmak için aşağıdaki önkoşulların farkında olmanız gerekir:
Yerel bilgisayarda Yönetici düzeyinde izniniz olmalıdır.
Araç takımını ilk kez çalıştırdığınızda EULA'yı kabul etmek zorunda olursunuz.
Bilgisayar için Windows PowerShell betik yürütme ilkesinin olarak
RemoteSigned
ayarlandığından emin olun. PowerShell yürütme ilkesi hakkında daha fazla bilgi için bkz . about_Execution_Policies.Not
Ortamınız bilgisayar düzeyinde kullanmanızı
RemoteSigned
engelliyorsa, geçici olarak işlem düzeyinde ayarlayabilirsiniz. Bunu yapmak için, aracı başlatmadan önce yükseltilmiş bir PowerShell Komut İstemi penceresinde aşağıdaki cmdlet'i çalıştırın:PS C:\> Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned
Değişikliğin geçerli olduğunu doğrulamak için cmdlet'ini
PS C:\> Get-ExecutionPolicy -List
çalıştırın.İşlem düzeyi izinleri yalnızca geçerli PowerShell oturumu için geçerlidir. PowerShell penceresini kapattıktan sonra yürütme ilkesi özgün ayara geri döner.
Microsoft desteğine başvurmadan önce önemli bilgileri toplama
TSS'yi tüm düğümlere indirin ve C:\tss klasörüne genişletin.
Yükseltilmiş bir PowerShell Komut İstemi penceresinde C:\tss klasörünü açın.
Aşağıdaki cmdlet'i çalıştırarak sorunlu bilgisayarda izlemeleri başlatın:
.\TSS.ps1 -Scenario NET_RPC
EULA istemine yanıt verin.
Sorunu yeniden üretin. Sorunu izlemek veya test etmek için Olay Görüntüleyicisi veya wbemtest gibi araçları kullanabilirsiniz.
Sorunu yeniden oluşturduktan sonra veri toplamayı hemen durdurun.
Otomatik betikler gerekli verileri toplamayı bitirdikten sonra verileri destek isteğinize ekleyin.