2017-03-13 156 views
3

我正在Windows Server 2012 R2(x64)上部署我的Asp.net應用程序。我在使用64位dll時遇到運行時BadImageFormatException。當我使用IIS Express或本地機器上發佈的應用程序運行IIS時,一切正常(應用程序池 - >解決方案名稱 - >啓用32位應用程序設置爲False,解決方案中的所有項目也設置爲Platform目標x64)。部署正在經歷團隊城市& Octopus Deploy。BadImageFormatException在Windows Server 2012 r2上部署時

解決方案可能是什麼?

UPD System.BadImageFormatException:嘗試加載格式不正確的程序。 (C:\ TeamCity \ buildAgent \ work \ aeb63fe0b246a1f3 \ xxx \ xxx \ Controllers \ xxx \ xxx \ xxxController)中的xxx.Controllers.xxx.xxxController.LibxlTest()處的libxl.XmlBook.xlCreateXMLBookC()處的錯誤(來自HRESULT的異常:0x8007000B) .cs:line 597

在Octopus Tentacle服務器上沒有這樣的路徑C:\ TeamCity \ buildAgent \。

+0

檢查.NET Framework版本。例如您可能會嘗試在僅支持.NET 4.0的計算機上運行.NET4.5中構建的程序集 – user326608

+0

謝謝,但.NET Framework版本相同。 – col403

+0

如果您正在使用團隊城市,請確保teamcity已配置爲爲x64構建人工製品。 –

回答

1

最後,它適用於x86(從bin文件夾)版本,而解決方案是爲x64構建的。可能它是libxl的一個特點。因此,我正在使用x64進行開發,部署後,我的部署後腳本將其更改爲x86版本。

0

好的,它看起來像你或你的某個引用對libXL有依賴性。

您的異常結果(0x8007000B)絕對是32位無法加載64位問題。

libXL是C++項目,在download zip中有bin64文件夾,其副本libxl.dll將以64位模式工作。

如果你有一個libXL許可的副本更好地使用64位的dll。

請注意,C:\TeamCity\buildAgent\來自您的項目建設的機器,行號等保存到您的pdb文件。

+0

我有關於pdb文件,謝謝。服務器肯定是x64,我完全從bin64文件夾(〜9mb)使用libxl.dll, – col403

相關問題