C# programımda genel olarak iyi çalışan bir dizeyi indirmek için WebClient kullanıyorum, ancak zaman zaman istisna yapıyorum "object reference bir nesnenin örneğine ayarlanamaz. WebClient DownloadString, bazen "nesne başvurusu bir nesnenin örneğine ayarlanmadı" özel durumuna neden olur.
Aşağıdaki örnek
kodun ilgili kısmını gösterir: istisna bu kod satırında olurString ResponseString = "";
String URITarget = "..... my URI information .....";
using (WebClient WebClientInstance = new WebClient())
{
WebClientInstance.Encoding = System.Text.Encoding.UTF8;
WebClientInstance.Headers.Add("Content-Type", "application/json");
ResponseString = WebClientInstance.DownloadString(URITarget);
}
: Yukarıdaki kod ile konuları ve dolayısıyla işlevini kullanıyorum gibi
ResponseString = WebClientInstance.DownloadString(URITarget);
teorik olarak farklı thread'lardan aynı anda çağrılabilir, ilk önce WebClient'in thread-safe olmadığı için sorunun threadlardan kaynaklandığını düşündüm. yerine gerçek nedense NULL veya en azından boş bir dize
private Object SendWebClientHTTPRequestThreadLock = new Object();
...
String ResponseString = "";
String URITarget = "..... my URI information .....";
lock (SendWebClientHTTPRequestThreadLock)
{
using (WebClient WebClientInstance = new WebClient())
{
WebClientInstance.Encoding = System.Text.Encoding.UTF8;
WebClientInstance.Headers.Add("Content-Type", "application/json");
ResponseString = WebClientInstance.DownloadString(URITarget);
}
}
o WebClientInstance.DownloadString olabilir (URITarget): Ama yukarıdaki kod etrafında kilidi (SendWebClientHTTPRequestThreadLock) uyguladıktan sonra, herhangi bir iyileşme getirmedi ? Baska öneri?
Gönderilen kod, 'DownloadString' uygulamasında gömülü bir yer dışında bir' NullReferenceException 'atamıyor. Lütfen tüm yığın izlemeyi yayınlayın ve ilgili olduğunu düşündüğünüzün ötesinde, bize [minimum, eksiksiz ve doğrulanabilir bir örnek] (http://stackoverflow.com/help/mcve/) verin. –
NULL döndüren WebClientInstance.DownloadString (URITarget) 'değil. Görünüşe göre, WebClientInstance'ın kendisi bir nedenden dolayı 'null' ve bu nedenle herhangi bir yöntemini arayamazsınız. –
Sorunun analizini iyileştirmek için başvuruma biraz daha mantık ekledim. Ne yazık ki (ya da neyse ki?), Sorun geçen haftadan beri tekrar ortaya çıkmadı. Durumu takip etmeye devam ediyorum ve mümkün olan en kısa zamanda daha fazla detay ile geleceğim. – Reboon