我有一個在Windows Server 2008上運行的應用程序,它正在處理上傳的圖像。目前,它每天成功處理大約8000張圖像,爲每張圖像創建11種不同的尺寸。某些圖像在Windows Server 2008上無法加載
我的問題是,有時應用程序無法加載一些圖像,我得到的錯誤「System.Runtime.InteropServices.ExternalException:在GDI +發生了一般性錯誤。」。
上傳只接受帶有JPEG擴展名(jpg/jpeg/jpe)或JPEG MIME類型的文件,並且我可以告訴那些圖像實際上是JPEG圖像。如果我在服務器上的Windows資源管理器中查看映像文件,它可以成功從文件中提取縮略圖,但如果我嘗試打開它,則會收到錯誤消息「這不是有效的位圖文件,或者它的格式是目前不支持。「從油漆。
如果我將圖像複製到我自己的計算機上,運行Windows 7,打開圖像沒有問題。它適用於Paint,Windows照片查看器,Adobe Bridge和Photoshop。如果我嘗試使用Image.FromStream以與在服務器上運行的應用程序相同的方式加載圖像,則它加載得很好。 (我已將文件複製回服務器,但它仍不起作用,所以在複製過程中沒有任何更改。)
當我查看Bridge中的圖像信息時,發現圖像是使用Picasa 3.0創建的,但除此之外,我無法看到它們的任何特別之處。我還沒有發現任何人有同樣的問題,或任何已知的與Picasa應用程序類似的問題。
有沒有人有類似的問題,或知道是否有什麼特別的關於使用Picasa創建的圖像?是否有任何圖像編解碼器需要在服務器上安裝以處理各種JPEG圖像?
以下是未在服務器上加載的圖像示例:gdi-example.jpg(192 kB)。
有趣。我可以在Windows Server 2008和2003上使用您的示例圖像來確認這一點(儘管圖片查看器在2003年爲我提供了1x1像素的圖像)。無法看到圖像有任何問題。在Windows 7上,它打開罰款。這可能是一些安全相關的GDI補丁或其他東西,但我不知道該怎麼做。 – 2010-04-15 09:25:42
@Pekka:謝謝你的確認,至少我知道問題可能與操作系統版本有關,而不僅僅是這個服務器。 – Guffa 2010-04-15 10:04:21