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

C# WinServer 64位2012 R2上的Autodesk.Inventor.Interop.dll-接口未注册,c#,asp.net,dll,autodesk,interopservices,C#,Asp.net,Dll,Autodesk,Interopservices,我正在尝试基于Autodesk Inventor engine开发一个非常简单的web应用程序 我正在使用Visual Studio 2010和Inventor 2015在Win7 64位上进行开发,它在调试方面工作得非常好,但当我在web服务器上发布时,我发现错误: HRESULT:0x800401F3(CO_E_类字符串) 信息呢 接口字符串无效 我收到错误的代码行是: Inventor.Application _invApp = (Inventor.Application)Marshal.

我正在尝试基于Autodesk Inventor engine开发一个非常简单的web应用程序

我正在使用Visual Studio 2010和Inventor 2015在Win7 64位上进行开发,它在调试方面工作得非常好,但当我在web服务器上发布时,我发现错误:

HRESULT:0x800401F3(CO_E_类字符串)

信息呢

接口字符串无效

我收到错误的代码行是:

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;
使用System.Runtime.InteropServices;
命名空间web_调试_cs
{
公共分部类调试\u运行Inventor:Ssytem.Web.UI.Page
{
受保护的无效页面加载(对象发送方,事件参数e){startInventorApplication();}
私有void startInventorApplication()
{
string sDebug=string.Empty;
尝试
{
Inventor.Application\u invetorApp=(Inventor.Application)Marshal.GetActiveObject(“Inventor.Application”);
sDebug=“成功!!!”;
}
catch(异常示例){sDebug=“UNSUCCESS!
”+ex.Message;} lblAnswer.Text=sDebug; } } }
我直接从Inventor 2015指南中获取此代码,但是(重复)在本地机器上一切正常,但在服务器上则不行

  • 我检查了权限(每个人:完全控制)
  • 我在system32和SysWOW64上手动注册了regsvr32(无法注册)
  • 我向regasm注册了框架32和64(注册成功!)
  • 我将网站设置为使用32位应用程序
但没有什么能解决这个问题

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

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

我在服务器上启动了Inventor,以验证它是否工作正常,并且工作正常

有人能帮我吗

提前感谢您的回复


Emanuele

我不希望这样做,原因很简单:网页作为服务运行,Inventor作为用户级应用程序运行。设想如下:该网页由100个客户端/浏览器请求,您的应用程序将启动Inventor 100次。但除此之外,该网页不属于用户级别

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


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

我不希望这样做,原因很简单:网页作为服务运行,Inventor作为用户级应用程序运行。设想如下:该网页由100个客户端/浏览器请求,您的应用程序将启动Inventor 100次。但除此之外,该网页不属于用户级别

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


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

谢谢@Augusto的回复,你的意见很清楚,我认为你是对的,我的第二个怀疑是关于这个问题,你期待着我。但我的第一个疑问是,为什么在本地机器上开发它会工作得很好?可能是因为我的机器可以在不使用IIS服务的情况下解析调用?我的应用程序应该在本地Intranet上运行,而不是在公共Web服务器上运行。最有可能的情况是,当您在调试上运行时,您的Windows帐户允许它,不知何故(对不起,我不是Win Server权限方面的专家),谢谢您的回复和确认。我同意您关于我在部署中的windows帐户与服务器上的Web帐户之间的差异的看法。感谢@Augusto的回复,您的意见很清楚,我认为您是对的,我的第二个怀疑是关于这个问题,您期待着我。但我的第一个疑问是,为什么在本地机器上开发它会工作得很好?可能是因为我的机器可以在不使用IIS服务的情况下解析调用?我的应用程序应该在本地Intranet上运行,而不是在公共Web服务器上运行。最有可能的情况是,当您在调试上运行时,您的Windows帐户允许它,不知何故(对不起,我不是Win Server权限方面的专家),谢谢您的回复和确认。我同意您关于部署中的windows帐户与服务器上的Web帐户之间的差异的看法。