Về cơ bản tôi có một trang web hiển thị bản xem trước HTML của một số tài liệu (chủ yếu là văn phòng). Kết quả là mảnh HTML được bao gồm trong các trang được trả về bởi cùng một trang web, tuy nhiên hình ảnh được trả về bởi handler HTTP từ một trang web khác với các liên kết sau đây:Trình duyệt Chrome không hiển thị hình ảnh được tạo bởi trình xử lý HTTP
<img width="50" height="50" src="http://portal/Service/GetFile.asxh?id=123&inline=true">
Đối với một số lý do tất cả các trình duyệt trừ Chrome (ví dụ như IE6/7/8, Firefox, Opera, Safari) hiển thị mọi thứ tốt, tuy nhiên đối với những hình ảnh này Chrome hiển thị biểu tượng "hình ảnh bị hỏng". Nếu tôi chọn "Mở hình ảnh trong tab mới" thì hình ảnh được hiển thị tốt.
Chỉnh sửa Tôi nghĩ rằng tôi đã giải quyết vấn đề này, nhưng rõ ràng với Fiddler bật nó hoạt động tốt.
Tôi đã có ngữ cảnh.Response = "utf-8" còn lại trong mã, nhưng việc xóa nó không có sự khác biệt.
Headers:
HTTP/1.1 200 OK
Date: Wed, 05 Jan 2011 14:26:57 GMT
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Transfer-Encoding: chunked
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Content-Type: image/jpeg
Code:
context.Response.ContentType = file.ContentType;
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
byte[] buff = new byte[BuffSize];
using (var stream = repository.GetFileContentsAsStream(file.ContentId))
{
int bytesRead;
do
{
bytesRead = stream.Read(buff, 0, BuffSize);
if (bytesRead > 0)
{
context.Response.OutputStream.Write(buff, 0, bytesRead);
}
} while (bytesRead > 0);
}
context.Response.Flush();
context.Response.Close();
Trình xử lý của bạn có đặt đúng loại nội dung không? –
tiêu đề nào mà trình xử lý của bạn gửi trong phản hồi? –
Bạn có hoàn toàn tích cực dịch vụ của bạn đang tạo ra các tiêu đề chính xác? Tôi đã có vấn đề tương tự trước đây và nó hầu như luôn luôn là một vấn đề với các tiêu đề hoặc dòng, một số trình duyệt tha thứ cho một số điều mà những người khác không. Và tôi giả sử bạn có nghĩa là "ashx" và không "asxh" :) –