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 ビット アプリケーションで動作するように Web サイトを設定しました
しかし、何もこの問題を解決できませんでした。
pInvoke を使用して dll を手動でインポートする可能性について考えましたが、成功しませんでした...
私はよくグーグルで検索しましたが、オートデスクに問い合わせてみましたが成功しませんでした。
サーバー上で Inventor を起動して、動作するかどうかを確認したところ、完全に動作しました!
誰か助けてくれませんか?
親切な返信ありがとうございます!
エマヌエーレ