如何在ASP.Net 3.5中调用非托管COM对象

时间:2010-02-23 13:59:25

标签: asp.net-3.5

我有一个非托管的COM对象,我想从ASP.NET 3.5中调用它。

我可以像在C#中一样调用它,还是必须在web.config中编写一些特殊的东西,或者特别配置IIS。

现在我收到了stackoverflow异常。

2 个答案:

答案 0 :(得分:1)

您不能只从托管代码调用com对象。你必须P / Invoke它。查看pinvoke.net了解如何调用大多数Windows API。还有一个用于生成名为p/invoke interop assistant.

的p / invoke代码的工具

至于为什么你得到溢出,它可能与任何com调用无关。你可能做错了什么。检查您的房产,这是您最终会遇到的最常见的地方之一。另外,在溢出点检查你的调用堆栈,因为它会告诉你导致问题的方法是什么。

答案 1 :(得分:1)

对于.NET项目,在“添加引用”对话框中有COM选项卡。添加对COM对象的引用,它应该可以正常工作。

如果它适用于开发机器,但不适用于生产中,您只需检查所有常见的嫌疑人:

  • 是否在生产服务器上注册了COM对象(和依赖项)。
  • Web服务器是否以64位运行?这将阻止您在运行中运行32位COM对象。