【问题标题】:How to call COM dll from c# web service using IIS如何使用 IIS 从 c# Web 服务调用 COM dll
【发布时间】:2014-02-09 14:02:19
【问题描述】:

我编写了一个 Web 服务(c#、VS2012、windows7 64bit),它调用了一个 COM dll。 使用 Visual Studio,执行 Web 服务和客户端应用程序没有问题。

尝试在 IIS 中定位 Web 服务后,对 COM dll 函数的所有调用均失败。 可能是什么问题呢?是否有针对 COM dll 的 IIS 的特定配置?

【问题讨论】:

  • 很可能是安全问题。用于您的 iis 应用程序的应用程序池是什么?它在哪个用户下运行?
  • 应用程序池为.NET Framework v4.0。
  • 为您的应用创建一个应用池。使用在您的 PC 上具有管理员权限的用户启动它,看看是否正常。如果他们这样做,您就知道这是一个授权问题。
  • 用户不是管理员,但拥有完全控制权限。

标签: asp.net web-services iis com dllimport


【解决方案1】:

尝试将应用程序池的执行用户更改为自定义帐户而不是内置帐户。尝试首先以管理员身份运行它并让它工作。然后尝试使用更受限制的用户帐户。

【讨论】:

  • 谢谢。用户现在是管理员。什么
  • 这个问题还有其他可能的原因吗?
  • 那么它仍然无法正常工作吗?即使在 IIS 中以管理员身份运行它。如果它是您尝试运行的新机器?那么您的 COM dll 的注册可能有问题。
  • 我找到了一个可能的解决方案“将 Interop.TAPI3Lib 的隔离设置为 False 并使用 .NET Framework 2.0。”来自 CodeProject (codeproject.com/Articles/10994/…) 上的一个线程。我不知道这是否与您尝试做的事情相同,但它是相同的错误消息。
  • 非常感谢 Mike 和 David。原来dll应用程序是32位的。启用 32 位应用程序即可解决问题。
【解决方案2】:

我将框架版本从 3.5 更改为 4。然后 sloved。

参考:http://quickstartprojects.org/2011/11/webservicesindotnet4/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2014-05-28
    • 2012-04-28
    相关资源
    最近更新 更多