【问题标题】:Developing WCF services on Win 7 64-bit在 Win 7 64 位上开发 WCF 服务
【发布时间】:2013-01-14 10:40:20
【问题描述】:

我正在尝试在 64 位 Win 7 上开发 WCF 服务。 此服务必须使用第三方组件才能完成工作。

第 3 方组件是这样实例化的

ThirdPartyib.ThirdPartyClass objThird = new ThirdPartyib.ThirdPartyClass;

调用方法报错

*调用服务失败。可能原因:服务离线或无法访问;客户端配置与代理不匹配;现有代理无效。有关更多详细信息,请参阅堆栈跟踪。您可以尝试通过启动新代理、恢复到默认配置或刷新服务来恢复。 *

当我注释掉第三方 dll 的实例化部分并返回一个简单的字符串时,它可以正常工作。事实上,我什至尝试使用该服务在本地创建一个文件夹,这也可以。 我该怎么做才能让服务与第 3 方 dll 一起使用?

此第 3 方 dll 是 32 位的。

【问题讨论】:

  • 您是否尝试直接从浏览器调用该方法?
  • 您可以在服务 web.config 中激活跟踪以查看服务器端的实际故障。
  • 您是否尝试过调试您的服务?或者只是制作一个控制台应用程序并创建一个第三方组件的实例,然后看看会发生什么。
  • 感谢大家的宝贵时间。我在这里找到了解决方案。 link

标签: c# visual-studio-2010 wcf


【解决方案1】:

您是否在 IIS 中托管此应用程序?在这种情况下,您要么需要使用 x64 和/或 anyCpu 库。否则你将不得不tell IIS it's ok to run in 32-bit mode

【讨论】:

  • 这将作为 Windows 服务托管。当我们在 Win 64 上迁移到 VS 2010 时,我们在开发桌面应用程序时遇到了与上述 3rd 方 dll 相同的问题,但通过选择 x86 构建选项解决了这个问题。该选项在这里似乎没有帮助,或者我不知道如何使用它!!!
【解决方案2】:

您需要将整个服务编译为 x86。这包括您的所有项目:承载 WCF 服务的服务应用程序、包含 WCF 服务定义的 DLL(如果有这样的 DLL)以及您使用的所有其他未编译为 Any 的库CPU 和你开发的。

简短:整个解决方案必须仅使用 x86。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2013-01-23
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多