2017-12-01 9 views
0

Seit ich auf VSC 2017 aktualisiert habe, habe ich festgestellt, dass HttpContext.Response Funktionen sehr schwierig geworden sind, da der erwartete Fehler "Der Thread wurde abgebrochen" selten ist richtig behandelt. Manchmal funktioniert es, aber es ist genauso wahrscheinlich, dass es diesen Fehler trifft und einfach aufhört.HttpContext.Response unzuverlässig in Visual Studio Community 2017

Ich habe die üblichen Schritte versucht, diese Fehler selbst für den Umgang:

HttpContext.Current.ApplicationInstance.CompleteRequest(); 

am Ende Response.Redirect Befehle zum Beispiel das Hinzufügen, aber diese haben keine Wirkung.

Spezifisches Beispiel: Ich habe eine Anwendung, die GridViews in Excel-Tabellen exportiert. Nach den Schritten zum Sammeln und Formatieren meiner Daten für die Tabelle wird die Datei mit den folgenden Schritten erstellt.

Sie können sehen, dass die Antwort explizit beendet wird, aber immer noch mit dem gleichen Fehler fehlschlägt. Es spielt keine Rolle, in welchem ​​Browser ich bin, und ich verwende .NET Framework 4.5.2 - das ist der höchste Wert, den der Server bereitstellt, den ich unterstütze. Hat jemand irgendwelche Ideen?

Antwort

0

In weiteren Untersuchungen habe ich festgestellt, dass Response, in all seinen verschiedenen Anwendungen, nicht gut mit der AJAX-Update-Panel-Steuerelement. Wenn ich den LinkButton verschoben habe, der die oben beschriebene Funktion "Gridview-To-Spreadsheet" aus meinem Update-Fenster heraus auslöst, lief sie wie erwartet.

Also nicht Response auslösen [was auch immer] in einem Update-Panel.

2

In Vs 2017-Core verwenden, die nicht unterstützen HttpContext.Current so grundsätzlich statt dass sie bieten einige andere Sache

private readonly IHttpContextAccessor _httpContextAccessor; 
    _httpContextAccessor.HttpContext.Response.Redirect(redirectUrl); 

Sie wie dies in VS 2017

Hoffnung zugreifen können, so dass die Antwort hilfreich ist Sie

+0

Leider hilft das nicht. Ich verwende "Standard" .NET, nicht Core, also kann ich diese Schnittstelle nicht nutzen. Danke für den Vorschlag. –

Verwandte Themen