Я пытаюсь разработать очень простое веб-приложение на основе механизма Autodesk Inventor.Autodesk.Inventor.Interop.dll на WinServer 64-разрядный 2012 R2 - интерфейс не зарегистрирован
Я разрабатываю на Win7 64-разрядные с Visual Studio 2010 и Inventor 2015, и все это прекрасно работает на отладку, но когда я опубликовать на веб-сервере я получаю сообщение об ошибке:
HRESULT: 0x800401F3 (CO_E_CLASSSTRING)
и сообщение
interface string not valid
# строка кода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 руководства, но (повтор) на локальной машине все это хорошо, но не на сервере.
- Я проверил разрешение (все: полный контроль)
- Я незарегистрированный вручную с regsvr32 (невозможно зарегистрировать) как на system32 и SysWOW64
- Я незарегистрированный на каркасе 32 и 64 с Regasm (регистрация успеха !)
- Я установил веб-сайт для работы с 32-битным приложением
, но ничего не может решить эту проблему.
Я думал о возможности импорта вручную дллы с PInvoke, но без успеха ...
Я гугл много, я судимый попросить Autodesk без успеха.
Я запустил Inventor на сервере, чтобы проверить, работает ли он, и он отлично работает!
Может ли кто-нибудь попытаться мне помочь?
Заранее благодарим за любой ответ!
Emanuele
Спасибо @Augusto за ваш ответ, это ясно ваше мнение, и я думаю, что вы правы, мое второе сомнение касалось этого вопроса, и вы меня ожидали. Но мое первое сомнение в том, почему при разработке на локальной машине он работает отлично? Возможно, потому что моя машина может разрешить вызов без использования службы IIS? Мое приложение должно работать в локальной интрасети, а не на общедоступном WebServer. –
Скорее всего, когда вы запускаете отладку, ваша учетная запись Windows разрешает ее, как-то (извините, я не эксперт по разрешениям Win Server) –
Спасибо за ваш ответ и подтверждение. Я согласен с вами в отношении различий между моей учетной записью Windows в развертывании и веб-учетной записью на сервере. –