WinError 10049 Hatası (The requested address is not valid in its context)
Belirti
EraBackup Agent (communicator.py) başlatıldığında aşağıdaki hata görülebilir:
Traceback (most recent call last):
File "communicator.py", line xxxx, in main
server_socket.bind((HOST, PORT))
OSError: [WinError 10049] The requested address is not valid in its contextveya
OSError: [WinError 10049]
The requested address is not valid in its contextHatanın Nedeni
Bu hata, EraBackup Agent’ın dinleme (bind) işlemi sırasında Windows üzerinde bulunmayan bir IP adresine bağlanmaya çalışması nedeniyle oluşur.
Agent aşağıdaki kod ile belirtilen IP adresinde dinleme başlatır:
HOST = clientaddress
PORT = int(clientport)
server_socket.bind((HOST, PORT))Buradaki clientaddress değeri, Agent’ın çalıştığı bilgisayarın kendi IP adresi olmalıdır.
Örneğin:
clientaddress = 172.16.99.140Eğer Agent’ın çalıştığı Windows makinesinde bu IP adresi mevcut değilse, Windows ilgili IP üzerinde dinleme başlatamayacağı için WinError 10049 hatasını üretir.
Yaygın Sebepler
- Yanlış IP adresinin
clientaddressolarak girilmesi - Sunucu IP adresinin yanlışlıkla
clientaddressalanına yazılması - Ağ kartının IP adresinin değişmiş olması
- VPN bağlantısının kesilmiş olması
- İlgili ağ adaptörünün devre dışı kalmış olması
- DHCP nedeniyle istemcinin yeni IP adresi almış olması
Kontrol Edilmesi Gerekenler
1. Windows IP adresini kontrol edin
Komut İstemi’ni açın ve aşağıdaki komutu çalıştırın:
ipconfigveya
ipconfig /allÇıktıda görülen IPv4 adresinin, EraBackup Agent yapılandırmasındaki clientaddress değeri ile aynı olduğundan emin olun.
Örnek:
IPv4 Address . . . . . . . : 172.16.99.1402. Yapılandırma dosyasını kontrol edin
EraBackup Agent yapılandırma dosyasını açın:
C:\Users\Public\EraBackup\config.jsonÖrnek yapılandırma:
{
"serverurl": "172.16.99.82",
"clientaddress": "172.16.99.140",
"clientport": "62107"
}Alanların anlamı:
| Alan | Açıklama |
|---|---|
| serverurl | EraBackup Sunucusunun IP adresi |
| clientaddress | Agent’ın çalıştığı bilgisayarın IP adresi |
| clientport | Agent’ın dinleyeceği port |
Doğru Yapılandırma
Örnek ağ yapısı:
EraBackup Server
IP: 172.16.99.82
↓
EraBackup Agent
IP: 172.16.99.140
Port: 62107Bu durumda Agent aşağıdaki şekilde çalışmalıdır:
HOST = "172.16.99.140"
PORT = 62107
server_socket.bind((HOST, PORT))Yanlış Yapılandırma
Aşağıdaki yapılandırma hatalıdır:
{
"serverurl": "172.16.99.82",
"clientaddress": "172.16.99.82"
}Burada Agent kendi IP adresi yerine EraBackup Sunucusunun IP adresinde dinleme başlatmaya çalışacaktır.
Bu durumda Windows aşağıdaki hatayı üretir:
WinError 10049
The requested address is not valid in its contextSorun Giderme Adımları
ipconfigkomutu ile Agent makinesinin IP adresini doğrulayın.config.jsondosyasındakiclientaddressalanının doğru olduğundan emin olun.- Ağ adaptörünün etkin olduğundan emin olun.
- VPN kullanılıyorsa bağlantının aktif olduğunu kontrol edin.
- DHCP kullanılan ortamlarda IP adresinin değişmediğini doğrulayın.
- Gerekirse EraBackup Agent hizmetini yeniden başlatın.
Doğrulama
Agent başarıyla başlatıldığında aşağıdaki benzer çıktı görülmelidir:
Sunucu IP: 172.16.99.140
Dinlenen port: 62107
Sunucu dinleniyor: 172.16.99.140:62107Bu durum Agent’ın belirtilen IP adresinde başarıyla dinlemeye başladığını gösterir.
Not
WinError 10049 bir port kullanımda hatası değildir.
WinError 10049→ Belirtilen IP adresi bu bilgisayara ait değildir.WinError 10048→ Belirtilen port başka bir uygulama tarafından kullanılmaktadır.
Bu iki hata farklı nedenlerden kaynaklanır ve çözüm yöntemleri de farklıdır.