Wir hatten ein Problem vor kurzem, wo einer der Entwickler von einer Zeile Code geändert hatte mit HttpResponse.End
HttpApplication.CompleteRequest
zu verwenden, wenn eine PDF-Zwingen in ähnlicher Weise wie die folgenden zum Download: https://stackoverflow.com/a/8590579/3856039Verwendung von Response.End wenn zwingen PDF Download
Dies führte dazu, dass einige PDFs aufgrund eines fehlerfreien Platzproblems nicht heruntergeladen werden konnten. Daher wurde der Code wieder auf HttpResponse.End
zurückgesetzt.
jedoch meinem Kollegen zu helfen, war ich einige der Forschung durchgeführt und stieß ich auf die folgende Frage: Is Response.End() considered harmful?
, zu denen Links: https://blogs.msdn.microsoft.com/aspnetue/2010/05/25/response-end-response-close-and-how-customer-feedback-helps-us-improve-msdn-documentation/
Anbetracht dessen, was in der MSDN-Blog-Post dokumentiert ist, es klingt wie HttpResponse.End
zu verwenden ist der falsche Ansatz, also habe ich mich gefragt, ob es überhaupt benötigt wird oder ob es einen besseren Ansatz gibt?
Wenn Sie einen Grund haben, die Anfrage manuell zu beenden, dann ist CompleteRequest die zu verwendende Sache, wenn dies an anderer Stelle ein Problem verursacht, dann sollten Sie dies angehen und beheben. Sie müssen nichts aufrufen, wenn Ihre Anwendung nach dem Schreiben der Antwort auf natürliche Weise zu ihrem Einstiegspunkt zurückfährt. –
Haben Sie versucht, die Datei als Bytearray zu lesen und als FileResult zurückzugeben? Es reagiert nicht auf Ihre Frage, aber es könnte eine Problemumgehung sein. –
Ich denke, der MSDN-Link, den Sie enthalten, hat die Antwort, die Sie suchen: "Die End-Methode gibt es nur, weil wir versucht haben, mit klassischem ASP kompatibel zu sein, als 1.0 veröffentlicht wurde." Es wird dann darauf hingewiesen, dass dies nicht empfohlen wird, da es den Inhalt synchron spült, während die Daten asynchron gesendet werden, wenn die Anforderung auf die übliche Weise endet. "In der Dokumentation für End sollte angegeben werden, dass CompleteRequest eine bessere Möglichkeit bietet, die EndRequest-Benachrichtigung zu überspringen und die Anfrage abzuschließen." –