Ich denke, das kommt von Missverständnis der Response-Objekt und/oder der grundlegenden HTTP-Anfrage-Struktur.
Ihre Anfrage: GET /buildXLS.aspx
Server 1 Response:/* Header Informationen für Datei herunterladen *// * Dateidaten */
Server 2 Antwort:/* hearder Infos für HTML-Seite */<div> Aktualisiere ... </div >/* Dateidaten */
wenn Sie wie Server 1 zu handeln versuchen, können Sie nicht alle Daten zurück auf die Antwort senden, aber die Datei selbst (und entsprechende Kopfzeilen). Wenn Sie versuchen, sich wie Server 2 zu verhalten, wird die Seite, die Sie herunterladen, als HTML behandelt, und Sie werden die Dateidaten nie sehen, da Header geschrieben wurden, die eine "text/html" -Übertragung anstelle von XLS anzeigen. Sobald Sie die Antwort aus irgendeinem Grund gelöscht haben, können Sie nicht mehr schreiben.
Ich kann eine Situation sehen, wo Ihr Szenario funktionieren könnte, aber nur als zwei interagierende Seiten - Seite 1 zeigt die Fortschrittsmeldung öffnet dann ein neues Fenster, Seite 2. Seite 2 startet den XLS Build und löst dann Seite 1 aus, um zu verbergen die Fortschrittsnachricht, wenn sie abgeschlossen ist. Jetzt haben Sie zwei Seiten, die den zwei Gruppen von Headern entsprechen, die Sie senden möchten, anstatt zu versuchen, sowohl HTML-Aktualisierungen zu senden als auch Dateidownloads innerhalb derselben Antwort zu starten.
Ich habe das gleiche überprüfen, Fehler bekommen, wenn Response.write() .. Ich bin auch besorgt, warum ich diesen Fehler bekomme. –