C# 从Web应用程序访问DLL接口时出错
我用C#制作了一个windows窗体应用程序。我在该应用程序中添加了一个DLL引用,并调用了该DLL的方法。工作正常。但当我创建了web应用程序并添加了对同一DLL的引用并尝试运行时,我得到的错误如下所示C# 从Web应用程序访问DLL接口时出错,c#,asp.net,windows,dll,C#,Asp.net,Windows,Dll,我用C#制作了一个windows窗体应用程序。我在该应用程序中添加了一个DLL引用,并调用了该DLL的方法。工作正常。但当我创建了web应用程序并添加了对同一DLL的引用并尝试运行时,我得到的错误如下所示 Unable to cast COM object of type 'XXXXX.XXXX' to interface type 'XXXXX.XXXX'. This operation failed because the QueryInterface call on the COM co
Unable to cast COM object of type 'XXXXX.XXXX' to interface type 'XXXXX.XXXX'.
This operation failed because the QueryInterface call on the COM component for the interface with IID '{2DEEB1D7-0B44-4142-9E7B-07477781696C}' failed due to the following error: Bad variable type. (Exception from HRESULT: 0x80020008 (DISP_E_BADVARTYPE)).
DLL中的方法,我从web应用程序作为
m_SSCP.StartUp("FilePath", "value1", "value2", 6553703, 0, out return_code);
所以,如果我从Web应用程序和Windows窗体应用程序调用相同的函数,这两个操作之间有什么区别吗
我试图在网上搜索,但没有得到任何适当的帮助 这听起来“特定于dll”,所以请检查它的API/文档。异常似乎已经向您指出了一些特定的方向
错误的变量类型
@EdSF:谢谢您的回复。但由于我在windows窗体应用程序中使用相同的DLL,所以它运行良好。我在Web应用程序中传递了相同的变量值,但仍然得到了相同的错误。好吧,我只能猜测,因为实际上没有太多的事情要做。例如FilePath—在Windows/desktop中引用路径/文件夹/文件的方式与在IIS/ASP.Net中不同。在向您的项目添加引用时,在这两种情况下都创建了互操作。如果互操作定义相同,则可以在对象浏览器中进行检查(类型检查)