Ich habe den folgenden Code in einem DelegatingHandler für ein WebApi 2-Projekt.Nullbedingter Operator, verhält sich auf einigen Computern nicht wie erwartet
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var content = await request.Content?.ReadAsStringAsync();
_log.Information("Received {request} with content body: {content}.", request, content);
// Run the rest of the request pipeline.
var result = await base.SendAsync(request, cancellationToken);
var responseContent = await result.Content?.ReadAsStringAsync();
_log.Information("Returning {result} with content body: {responseContent}.", result, responseContent);
return result;
}
Auf meinem Rechner funktioniert das wie erwartet, und während einer Reaktion, die ein 301-Redirect ist (wo result.content wäre null) Ich responseContent bekommen == null; Auf einem Mitarbeitercomputer erhält er jedoch eine Null-Referenz-Ausnahme in dieser Zeile. Wir verwenden sowohl die 4.5.1 Laufzeit, die Unterschiede so weit wie wir sagen können, ist wie folgt folgt:
- Ich verwende VS2015 Enterprise-SP2 (wo es funktioniert), wird er mit VS2015 Professional SP2 (wo es funktioniert nicht)
Ninja Bearbeiten - the .NET versions and service packs I have installed as well as the ones he has installed ...
es ist wie die Maschine sieht, wo es nicht zwei 4.5.1 Sicherheits-Updates installiert Arbeits (KB2901126 & KB2931368), dass ich dies nicht tun , würde einer dieser Gründe das sein verklagen? Gibt es einen Unterschied in den Compilern oder Compiler-Optionen, die ich überprüfen muss? Oder schaue ich auf etwas, das eine einfachere Erklärung hat?
Haben Sie es mit einem Oldschool-Null-Check versucht? – Slugart
Die gleichen Binärdateien auf verschiedenen Rechnern..oder eine andere Zusammenstellung? Vergleichen Sie den IL-Code, wenn es sich um eine andere Kompilierung handelt. –
Wenn result.Content null ist, erhalten Sie am Ende "wait null", was NullReferenceException auslösen sollte. Bist du sicher, dass in deinem Fall result.Content wirklich Null ist? – Evk