2011-01-05 5 views
10

Temel olarak bazı belgelerin (özellikle ofis) HTML önizlemesini görüntüleyen bir web sitem var. Ortaya çıkan HTML parçası aynı web sitesi tarafından döndürülen sayfaya dahil edilir, ancak görüntüleri aşağıdaki bağlantıları olan başka bir siteden HTTP işleyicisi tarafından döndürülen:Chrome tarayıcı, HTTP işleyicisi tarafından oluşturulan resimleri göstermiyor

<img width="50" height="50" src="http://portal/Service/GetFile.asxh?id=123&inline=true"> 

Nedense (örneğin IE6/7 Chrome dışındaki tüm tarayıcılar/8, Firefox, Opera, Safari) her şeyi gösterir, ancak bu görüntüler için Chrome "kırık görüntü" simgesini gösterir. "Resmi yeni sekmede aç" ı seçtiğimde, resim sadece iyi gösterilir.

Düzenle Bu sorunu çözdüğümü düşünmüştüm ama görünüşe göre Fiddler açıkken iyi çalışıyor.

Bağlamda içerik vardı.Response = "utf-8" kodda kaldı, ancak kaldırarak fark yoktu.

Başlıkları:

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 

Kodu:

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

İşleyiciniz doğru içerik türünü ayarlıyor mu? –

+1

İşleyiciniz yanıtta hangi başlıkları gönderiyor? –

+0

Hizmetinizin doğru üstbilgileri oluşturduğundan kesinlikle emin misiniz? Daha önce benzer sorunlar yaşadım ve hemen hemen her zaman üstbilgilerle veya akışla ilgili bir sorun vardı, bazı tarayıcılar başkalarının yapmadığı bazı şeyleri affediyordu. Ve "ashx" demek istediğini ve "asxh" demediğini sanıyorum :) –

cevap

5

Chrome görüntüleri için ayarlanmış olması Uzunluğu gerektirir eminim, bu yüzden tutarken yanıtınızı içerik-uzunluk başlığı eklemeyi deneyin görüntü.

+0

Hayır, aynı sisteme sahibim ve içerik uzunluğu göndermiyorum, yine de iyi çalışıyor. –

+0

Veritabanından görüntüleri okudum. Belki de genel gider, Chrome'un pes etmesine neden olacak kadar gecikme ekler. Her neyse, Content-Length ekleyerek bu sorunu giderdi. – Arunas

2

Bu eklemek gerekir:

Response.AddHeader("Content-Disposition", "inline;Filename=\"Picture.gif\""); 
Response.AddHeader("Content-Length", filesize.ToString()); 
4

O context.Response.Close var(); Chrome bundan hoşlanmıyor. Bu çizgiden kurtulun ve her şey iyi olacak. Aylardır bununla savaştım.

+0

Sanırım haklısınız. Ben jenerik pdfs hizmet veren bir işleyici ile aynı sorunu vardı. Close –

+0

'un kaldırılmasından sonra kayboldu Burada da İçerik Uzunluğu üstbilgisini uyguladı, ancak Close() yöntemini kaldırarak düzeltildi. – Daveloper

+0

Sorunum vardı ve bu benim çözümümdü. Teşekkürler ! – bcolin