2012-01-10 33 views
8

Tôi đang sử dụng mã asp.net sau để truyền tài liệu từ.Không thể tải xuống [tệp] từ [máy chủ] Không thể mở trang web Internet này. Trang web được yêu cầu hoặc không khả dụng

 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(); 

Tuần trước, tôi bắt đầu nhận được thông báo sau khi cố gắng truyền các file trong IE8

Không thể tải [file] từ [server]

Không thể mở những trang web này . Trang web được yêu cầu không khả dụng hoặc không thể tìm thấy. Vui lòng thử lại sau.

Tôi không gặp lỗi sau khi cập nhật lên ie9 nhưng hầu hết người dùng của tôi vẫn sử dụng ie8. Tôi có cảm giác điều này có thể liên quan đến bản vá bảo mật của cửa sổ, nhưng tôi không tìm thấy bất kỳ thứ gì như thế này từ các tìm kiếm trên Google của tôi.

Dưới đây là một số thông tin hơn:

  • Các lỗi chỉ xảy ra trong ie8
  • Tôi không sử dụng https để hiển thị một tài liệu từ
  • Vấn đề bắt đầu xảy ra vào tuần trước.
  • Lỗi tồn tại trên các hệ thống chưa được cập nhật trong 3 tuần.
  • Tôi gặp sự cố này trên nhiều máy tính sử dụng ie8.

đáp ứng Tiêu đề

HTTP/1.1 200 OK Cache-Control: private, no-cache = "Set-Cookie" Content-Type: application/vnd.ms-word Server: Microsoft- IIS/7,5 Set-Cookie: .ASPXAUTH = 74B339B8F7578C646C5ABEB1DD798B73409F51EBE28A1EE3CA0E9B16CDA93C1A3B81CA6A82ABABF940A3E828B5B1D7DE503940AD669CD435E28DE36848A706ECA2BF0CAAB408263DFA22166CB796FEAE27A96950DE37A70619C2F59D9C138F39749DC814D41F9839F3414AEDDA7A3A26F5DA92EFAF09BC8C965F61E02DB68B94D8D43C3201528B601896108B0A30B3CDEDF389F3C3D463E2163596186BFE6BADB83DB635193CDE01DA06E0CB3D0F9FAC1C392DA5E30052AD530B803FA92FD72EA7D768B5BB1505BA26B566AED1DC DE7E5423143803434F2C32572427CD6B68A49126E7084947CC52CE315FAC9A94DA1EE4BF765A0F4D2277679F41F6F19275B0067C6223517A959811A24B36C882F9F6D76B1C408B109DBA33991FDC79517A4E7B4C24DEC38E00FA2C7CFBA5566067017CBF34C71D2CC33605A621277C5E6D3E34F45529536140841A0B98720F7129CF49EDB4D3C61553865EE1A332B4273A674FED651FA7525ED6BF180A578B3C0BA0422C40B4C09663BFA3D6E4DD69171C4B2A558506E1B1AFA5788C37EEB8BB2052BA02C91DB14CA0DC5D12F56E62A3016982521480CA104DC3E7451CC92F89003BDE64378961CB8D40753D4031D1CB5A8B78BE6004B97E2128F8ABE584B7961CECF4983C54A48B5E0AB662ECAFF4E04E984C663EA2CBE4C2161FB1D074B06F297378BA15F36927870735833076BB2E43E60BE83E82EBB0138290A761803535BF0590C22F6AAC01397E67C5FE52A3AB5EBB; path =/ content-disposition: attachment; filename = "Septa% 20Roberts% 20Compound% 2020111226 [1] .doc" X-AspNet-Phiên bản: 4.0.30319 X-Powered-By: ASP.NET Ngày: Thứ Ba , 10 Jan 2012 16:07:51 GMT Độ dài nội dung: 147456

+0

Bạn đã cố gắng sử dụng mã tương tự như bạn đang sử dụng để sản xuất các nội dung vào luồng phản ứng để viết một tập tin trên máy chủ và sau đó cố gắng thế nào để sử dụng IE8 để tải xuống tệp đã tạo? Đó sẽ là một điểm khởi đầu tốt để có thể sử dụng Fiddler để xem các yêu cầu HTTP cho tệp tĩnh và tập lệnh tải xuống động của bạn. –

+0

Sử dụng Response.AddHeader "Cache-control", "no-cache" ở bất kỳ đâu? Và một số ý tưởng khác để thử: 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 bạn có thể thực hiện kiểm tra để đổi tên tệp thành tên tệp đơn giản có dấu ngoặc và không gian để xem tác phẩm của nó không? – Aristos

Trả lời

0

Tôi tưởng tượng điều này đang làm vì trình duyệt có thứ gì đó đang gây ra sự cố này khi có bất kỳ máy trạm nào khác gặp sự cố này khi truy cập trang web này trong IE số 8 ?

1) Kiểm tra các phần mềm độc hại sử dụng - SpyBot-Tìm kiếm & Destroy - http://www.safer-networking.org/index2.html - Phần mềm quảng cáo - http://www.lavasoft.nu/home.php

2) Bạn có bất cứ antiviruses thêm cài đặt hoặc tường lửa được cài đặt nếu vậy chúng là gì? Họ có thể cần phải được gỡ bỏ hoàn toàn ít nhất trên cơ sở tạm thời để thử và tìm ra những gì đang gây ra điều này.

0

Những gì bạn có thể thử làm là tải tài liệu từ lên máy chủ khác và tải xuống tài liệu đó bằng IE8 trong khi trình điều khiển đang chạy. Sau đó, hãy xem tiêu đề phản hồi và xem nội dung nào bị thiếu/khác trong mã của bạn.

2

Hãy thử thay thế

Response.End(); 

với

Response.Flush 
CompleteRequest() 

vào cuối của khối mã (tham khảo herethere để biết thêm). Có lẽ chuyển hướng Phản hồi có một số loại sự cố và nó khiến máy chủ của bạn phản ứng thất bại trên mắt của trình duyệt.

+1

Tôi đã tài trợ một khoản tiền thưởng cho câu hỏi này bởi vì tôi tin rằng chúng tôi có cùng một vấn đề với một trong những khách hàng của chúng tôi. Chúng tôi không có quyền truy cập vào mạng nội bộ của khách hàng và chúng tôi không thể tự tái tạo vấn đề. Đáng buồn là người đã đặt câu hỏi không chú ý đến câu hỏi đó để không ai có thể xác nhận câu trả lời một cách dễ dàng: ( Tôi đã trao tiền thưởng sắp hết hạn cho câu trả lời này chứ không phải vì nó đã khắc phục vấn đề (kiểm tra các nguồn) – Stilgar

+0

Các liên kết đầu tiên được chia sẻ bởi Alfabravo đã thực sự hữu ích và giải quyết vấn đề của tôi.Đó là về IE và https combo.Đây là câu trả lời thực sự tốt. –

0

Thêm này và cung cấp cho nó một thử:

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

Sau khi một số nghiên cứu tôi phát hiện ra rằng một bản vá bảo mật cho asp.net thay đổi các tiêu đề đó bằng cách nào đó dẫn đến hành vi này trong IE8. Thông tin thêm tại đây: CLICK

0

Tôi đã tìm thấy thư mục gốc, không sử dụng tên này trừ khi bạn thực sự biết cách giải quyết tình huống cho IE8 (thực sự tôi chỉ biết rằng nó chỉ xảy ra trong IE8). sử dụng nó:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

và dòng này trong mã của bạn:

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

Nhờ tác giả:

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


Chỉ cần thấy điều này, có thể giúp đỡ cũng;

Hãy coi chừng phương pháp ASP.NET SetCacheability

HttpCacheability enum trên MSDN:

nocache: không ai có thể cache trang.

Riêng tư: chỉ các trình duyệt mới có thể lưu bộ nhớ cache (nhưng không được chia sẻ proxy).Đây là giá trị mặc định

Công: tất cả mọi người có thể cache trang, proxy bao gồm

server: các trang được lưu trữ chỉ trên máy chủ (như nocache, vì vậy các trình duyệt không bộ nhớ cache trang)

ServerAndNoCache: server và nocache ... giống như máy chủ

ServerAndPrivate: server và Pr ivate ... giống như Private

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

Các vấn đề liên quan