TBarCode .NET 常见问题
Web 应用部署后出现 Bad Image Format 异常
Web 应用部署后出现 Bad Image Format 异常
以下内容适用于 11.15 之前的 TBarCode .NET 版本。
将您的 ASP.NET 项目部署到 IIS Web 服务器后,您会遇到 System.BadImageFormatException 异常(尝试加载格式不正确的程序)。而在开发阶段并未出现此类问题。
原因:Visual Studio 是一个 32 位应用程序,开发服务器通常也以 32 位进程运行。因此,TECIT.TBarCode.DLL 的 32 位版本已被嵌入到您的项目中,并成为 ./bin 文件夹的一部分。但您的 IIS 以 64 位进程运行工作线程,此时加载的就是错误的格式。
方式一:部署程序集的 64 位版本
使用 C:\Program Files\Common Files\TEC-IT\TBarCode\[version] 文件夹中的版本(即 x64 版本)。将目标系统上 ../bin/TECIT.TBarCode.dll 文件替换为该版本。
方式二:交由 GAC 处理
将 TECIT.TBarCode.dll 从您的 bin 文件夹中完全移除。这样一来,将会加载全局程序集缓存 (GAC) 中的 TECIT.TBarCode.dll。公共语言运行时会自动加载正确的版本,因为 GAC 中同时保存了 32 位和 64 位两个版本。前提条件:必须在目标服务器上执行 TBarCode SDK 的安装程序,该安装程序会为您将相应 DLL 安装到 GAC 中。
如果没有立即看到效果,请重启您的应用程序池,或在命令行中执行“iisreset”(请注意,这会重启所有内容,相关会话都会丢失)。