【问题标题】:Running a 32-bit window service which loads a 32-bit dll as a 64-bit service运行将 32 位 dll 作为 64 位服务加载的 32 位窗口服务
【发布时间】:2011-06-27 13:54:08
【问题描述】:

情况是这样的——

我正在编写的一个窗口服务使用 Linq2Excel,它坚持调用应用程序要符合 x86。

但是,window 服务要安装在 64 位 Windows 服务器上。

使用 corflags,我可以安装 32 位窗口服务。但是,它会拒绝加载 Linq2Excel。这是一个例外:

Exception occurs: Could not load file or assembly 'LinqToExcel, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null' or one of its dependencies. 
An attempt was made to load a program with an incorrect format.

使该服务正常运行的解决方案是什么? (把服务器改成32位是不行的,用Linq2Excel是必须的)

【问题讨论】:

  • 你解决过这个问题吗,@Extrakun?我在这里遇到了类似的问题...
  • 没有。我必须强制 Linq2Excel 使用最新的 Windows Access 数据库引擎 (microsoft.com/download/en/details.aspx?id=13255),以便我可以将其编译为 64 位 DLL。
  • @Extrakun:您是使用“任何 CPU”目标还是 x86 目标构建服务?
  • 我相信它是任何 CPU。

标签: .net 32bit-64bit windows64 corflags linq-to-excel


【解决方案1】:

如果一切都是 32 位,在 64dit 机器上应该可以正常工作,但 32 位应用程序无法加载 64 位 dll,您可以使用 WCF 或其他方式进行进程外调用

【讨论】:

  • 是64位机器无法加载32位窗口服务。
猜你喜欢
  • 2010-11-15
  • 2011-09-05
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多