WinServer 64位2012 R2上的Autodesk.Inventor.Interop.dll-接口未注册

本文关键字:dll- Interop 接口 注册 Inventor Autodesk 64位 2012 R2 上的 WinServer | 更新日期: 2023-09-27 18:00:55

我正在尝试开发一个基于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手动注册(无法注册(
  • 我用regasm注册了框架32和64(注册成功!(
  • 我将网站设置为使用32位应用程序

但没有什么能解决这个问题。

我考虑过用pInvoke手动导入dll的可能性,但没有成功。。。

我在谷歌上搜索了很多,我试图向Autodesk申请,但没有成功。

我在服务器上启动了Inventor,以验证它是否工作,并且工作得很完美!

有人能帮我吗?

提前感谢您的回复!

Emanuele

WinServer 64位2012 R2上的Autodesk.Inventor.Interop.dll-接口未注册

我不希望这样做,原因很简单:网页作为服务运行,Inventor作为用户级应用程序运行。想象一下:100个客户端/浏览器请求该网页,您的应用程序将启动Inventor 100次。但更重要的是,该网页并不在用户层面。

最好的工作机会是:你的网页收到一个请求(比如创建一个.ipt文件(,创建一个必须执行操作的记录(例如,一个带有说明或数据库条目的新.txt文件(,Windows服务检测到该请求并启动Inventor来处理它。在这种情况下,你会有一个队列,请求由你的网页放置,但稍后会处理。

但我必须说,EULA不支持也不允许这样做,请查看它。