我正在尝试基于 Autodesk Inventor 引擎开发一个非常简单的 Web 应用程序。
我正在使用 Visual Studio 2010 和 Inventor 2015 在 Win7 64 位上进行开发,并且它在调试时一切正常,但是当我在 Web 服务器上发布时出现错误:
HRESULT:0x800401F3(CO_E_CLASSSTRING)
和消息
接口字符串无效
我收到错误的C# 代码行是:
Inventor.Application _invApp = (Inventor.Application)Marshal.GetActiveObject("Inventor.Application");
我的测试的完整代码如下:
using Inventor;
using System.Runtime.InteropServices;
namespace web_debug_cs
{
public partial class debug_runinventor : Ssytem.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e) { startInventorApplication(); }
private void startInventorApplication()
{
string sDebug = string.Empty;
try
{
Inventor.Application _invetorApp = (Inventor.Application)Marshal.GetActiveObject("Inventor.Application");
sDebug = "Success!!!";
}
catch (Exception ex) { sDebug = "UNSUCCESS!<br />" + ex.Message; }
lblAnswer.Text = sDebug;
}
}
}
我直接从 Inventor 2015 指南中获得此代码,但在本地机器上(重复)一切正常,但在服务器上却不行。
- 我检查了权限(每个人:完全控制)
- 我在 system32 和 SysWOW64 上都使用 regsvr32 手动注册(无法注册)
- 我在框架 32 和 64 上注册了 regasm(注册成功!)
- 我将网站设置为使用 32 位应用程序
但没有什么可以解决这个问题。
我考虑过使用 pInvoke 手动导入 dll的可能性,但没有成功......
我用谷歌搜索了很多,我试图问 Autodesk 没有成功。
我在服务器上启动了 Inventor 以验证它是否工作正常,并且工作正常!
任何人都可以尝试帮助我吗?
提前感谢您的任何回复!
伊曼纽尔