2009-10-07 54 views
1

我正在與我們用來從ASP.Net(3.5)Web窗體將TIFF圖像加載到客戶端瀏覽器中的第三方ActiveX控件進行鬥爭。 ActiveX控件正確地註冊了自己(就我所知)作爲TIFF圖像的MIME處理程序,並且每次在本地雙擊文件時都能正常工作。但是,IE6和ActiveX控件的行爲有所不同,具體取決於迄今爲止我能夠識別的一些情況。如何讓IE6認真對待ContentType?

編輯 ActiveX控件實際上並不在網頁中(沒有標籤)。客戶端將安裝ActiveX控件,並通過將原始圖像傳輸到客戶端,基於MIME處理自動在瀏覽器中生成ActiveX控件。 END EDIT

有關背景的目的,我們在圖像流傳輸到使用Response.BinaryWrite(緩衝液),其中緩衝液是包含二進制圖像的字節數組的瀏覽器。我已經嘗試在Web表單中使用Response.TransmitFile()和其他一些方法。 Web服務器運行Server 2003 SE SP2,網站運行在IIS6下。

  • 如果在流式傳輸之前設置Response.ContentType =「image/tiff」,則ActiveX控件將無法在IE6中加載。
  • 如果我在查詢字符串的任何位置指定圖像的名稱或「.tif」,則ActiveX控件會在IE6中成功加載。
  • 如果我使用FireFox,一切都很完美(在這裏插入wry「IE6 sucks」cliché)。

我做對IE6使用,以確定MIME處理的註冊表設置的研究整體轉換,並甚至試圖禁止在客戶端上MIME sniffing/MIME handling,都無濟於事。我不介意在查詢字符串中指定「.tif」,但即使這樣也不會在Citrix客戶端上成功加載控件,而這些客戶端是「註冊表!」對我。

哦,另一件事;要求ActiveX控件在不提示用戶的情況下加載,因此添加一個Content-Disposition標題爲「attachment; filename = yaddayaddayadda.tif」是不可能的。

有沒有人遇到過這樣的事情?你是如何克服它的?是否有可以推送到客戶端桌面的全局修復程序?有什麼我需要在Web服務器上設置?我覺得我已經嘗試了一切。

在此先感謝。

回答

0

從你的問題到現在還不清楚發生了什麼事。 ASPX頁面上的ActiveX控件還是向ASPX頁面發出請求?您是否在使用ASPX來提供二進制TIFF數據?

+0

補充說明。 – 2009-10-08 13:20:57

+0

因此,控制是在一個不同的厚客戶端EXE? A向生成TIFF的ASPX發出請求,是嗎?對不起,但設想你到底在做什麼還是很棘手的。 – batwad 2009-10-09 13:39:42