2012-01-10 14 views
8

Używam następującego kodu asp.net do przesyłania strumieniowego dokumentów Word.Nie można pobrać [pliku] z [serwera] Nie można otworzyć tej strony internetowej. Żądana strona jest niedostępna.

 Response.Clear(); 
    Response.ContentType = "application/vnd.ms-word"; 
    Response.AddHeader("content-disposition", "attachment;filename=\"" + Letter.WordFileName.Replace(" ", "%20").Replace("&", "And") + "\""); 
    Response.BinaryWrite(Letter.WordDocument.ToMSWordDocument()); 
    Response.End(); 

zeszłym tygodniu zacząłem pojawia się następujący komunikat podczas próby przesyłać pliki w IE8

Nie można pobrać [plik] z [serwer]

Nie można otworzyć tej witryny internetowej . Żądana strona jest niedostępna lub nie można jej> znaleźć. Spróbuj ponownie później.

Nie dostaję błędu po aktualizacji do ie9, ale większość moich użytkowników nadal używa ie8. Mam wrażenie, że może to być związane z poprawką bezpieczeństwa systemu Windows, ale nie znalazłem nic podobnego z moich wyszukiwań w Google.

Oto więcej informacji:

  • Błąd występuje tylko w IE8
  • Nie używam https do wyświetlania dokumentu Word
  • Problem zaczęło się dziać w zeszłym tygodniu.
  • Błąd występuje w systemach, które nie były aktualizowane przez 3 tygodnie.
  • Mam ten problem na wielu komputerach przy użyciu ie8.

nagłówku odpowiedzi

HTTP/1.1 200 OK Cache-Control: prywatne, no-cache = "Set-Cookie" Content-Type: application/vnd.ms słowo Serwer: Microsoft- IIS/7.5 Set-Cookie: .ASPXAUTH = 74B339B8F7578C646C5ABEB1DD798B73409F51EBE28A1EE3CA0E9B16CDA93C1A3B81CA6A82ABABF940A3E828B5B1D7DE503940AD669CD435E28DE36848A706ECA2BF0CAAB408263DFA22166CB796FEAE27A96950DE37A70619C2F59D9C138F39749DC814D41F9839F3414AEDDA7A3A26F5DA92EFAF09BC8C965F61E02DB68B94D8D43C3201528B601896108B0A30B3CDEDF389F3C3D463E2163596186BFE6BADB83DB635193CDE01DA06E0CB3D0F9FAC1C392DA5E30052AD530B803FA92FD72EA7D768B5BB1505BA26B566AED1DC DE7E5423143803434F2C32572427CD6B68A49126E7084947CC52CE315FAC9A94DA1EE4BF765A0F4D2277679F41F6F19275B0067C6223517A959811A24B36C882F9F6D76B1C408B109DBA33991FDC79517A4E7B4C24DEC38E00FA2C7CFBA5566067017CBF34C71D2CC33605A621277C5E6D3E34F45529536140841A0B98720F7129CF49EDB4D3C61553865EE1A332B4273A674FED651FA7525ED6BF180A578B3C0BA0422C40B4C09663BFA3D6E4DD69171C4B2A558506E1B1AFA5788C37EEB8BB2052BA02C91DB14CA0DC5D12F56E62A3016982521480CA104DC3E7451CC92F89003BDE64378961CB8D40753D4031D1CB5A8B78BE6004B97E2128F8ABE584B7961CECF4983C54A48B5E0AB662ECAFF4E04E984C663EA2CBE4C2161FB1D074B06F297378BA15F36927870735833076BB2E43E60BE83E82EBB0138290A761803535BF0590C22F6AAC01397E67C5FE52A3AB5EBB; ścieżka =/ content-disposition: attachment; filename = "Septa% 20Roberts% 20Compound% 2020111226 [1] .doc" X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Data: wt. , 10 stycznia 2012 16:07:51 GMT Długość treści: 147456

+0

Czy próbował użyć tego samego kodu, którego używasz do wyjścia zawartość do strumienia odpowiedzi zapisać plik na serwerze, a następnie próbować używać IE8 do pobrania utworzonego pliku? Byłby to dobry punkt wyjścia, aby móc używać Fiddlera do oglądania żądań HTTP dla pliku statycznego i dynamicznego skryptu pobierania. –

+0

Korzystanie z Response.AddHeader "Kontrola pamięci podręcznej", "brak pamięci podręcznej" w dowolnym miejscu? I kilka innych pomysłów do wypróbowania: http://answers.microsoft.com/en-us/ie/forum/ie8-windows_other/error-message-unable-to-open-this-internet-site/758f7a64-b081-4981 -814f-9a7a53434fb8 –

+0

@brad możesz zrobić test, aby zmienić nazwę pliku na prostą nazwę pliku bez nawiasu i spacji, aby sprawdzić, czy działa? – Aristos

Odpowiedz

0

Wyobrażam sobie, że to działa, ponieważ przeglądarka ma coś, co powoduje to, że inne stacje robocze mają ten problem podczas próby uzyskania dostępu do tej witryny w IE 8?

1) Sprawdź Malware używając - Spybot-Search & Destroy - http://www.safer-networking.org/index2.html - Adware - http://www.lavasoft.nu/home.php

2) Czy masz jakieś dodatkowe programy antywirusowe zainstalowane lub zapór zainstalowany, jeśli tak to jakie? Być może trzeba będzie odinstalować je całkowicie, przynajmniej na podstawie tymczasowych, aby spróbować dowiedzieć się, co jest przyczyną tego.

0

Możesz spróbować przesłać dokument tekstowy na inny serwer i pobrać go za pomocą IE8, gdy działa skrzypek. Następnie spójrz na nagłówek odpowiedzi i zobacz, czego brakuje w kodzie.

2

spróbować wymienić

Response.End(); 

z

Response.Flush 
CompleteRequest() 

w końcu bloku kodu (patrz here i there dodatkowych informacji). Może przekierowanie Response ma jakiś problem i powoduje, że odpowiedź twojego serwera kończy się niepowodzeniem na widok przeglądarki.

+1

Ja sponsorowałem nagrodę za to pytanie, ponieważ uważam, że mamy ten sam problem z jednym z naszych klientów. Nie mamy dostępu do wewnętrznej sieci klienta i nie możemy sami odtworzyć problemu. Niestety osoba, która zadała to pytanie, nie zwróciła na to uwagi, więc nikt nie może łatwo potwierdzić odpowiedzi :( Przyznam nagrodę, która wkrótce wygasła, nie dlatego, że rozwiązała problem, ale ponieważ była naprawdę edukacyjna. (sprawdź źródła) – Stilgar

+0

Pierwszy link udostępniony przez Alfabravo był bardzo pomocny i rozwiązał mój problem, chodziło o combo IE i https. Odpowiedź jest naprawdę dobra. –

0

Dodaj to i spróbować:

// check for IE 
if (Request.Browser.Browser == "IE") 
{ 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.AppendHeader(@"Pragma", @"no-cache"); 
} 
2

Po kilku badań okazało się, że poprawka zabezpieczeń dla ASP.NET zmienia nagłówki, które w jakiś sposób prowadzi do tego zachowania w IE8. Więcej informacji: CLICK

0

Znalazłem korzeń, nie używaj tych facetów, chyba że naprawdę wiesz, jak poradzić sobie z sytuacją w IE8 (właściwie to akurat się dowiedziałem, że dzieje się to tylko w IE8), usuń to, jeśli używając go:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

i tę linię w kodzie:

Response.ClearHeaders(); 
Response.AddHeader("Cache-Control", " no-store, no-cache "); 

Dzięki autora:

http://www.asprangers.com/post/2012/01/24/Stream-rendering-failing-for-PDF-Excel-Docs-after-MS11-100-patch-from-Aspx-pages.aspx


Wystarczy znaleźć ten, może pomóc także;

Strzeż metody ASP.NET SetCacheability

HttpCacheability enum na MSDN:

nocache: nikt nie może buforować stronę.

Prywatny: tylko przeglądarki mogą go buforować (ale nie udostępniają serwerów proxy).Jest to wartość domyślna

Public: każdy może buforować stronę, proxy włączone

Server: Strony są buforowane tylko na serwerze (jak nocache, więc przeglądarek nie buforują strony)

ServerAndNoCache: Serwer i nocache ... takie same jak Server

ServerAndPrivate: Server i Pr ivate ... tak samo jak prywatne

http://codeclimber.net.nz/archive/2007/04/01/Beware-the-ASP.NET-SetCacheability-method.aspx

Powiązane problemy