我遇到了有關使用C#運行autocad應用程序的問題。由於我是初學者,我的大部分代碼都是從網上粘貼的。部署後未創建Autocad實例
問題是我正在開發一個使用c#的web應用程序,它將在運行時創建一個實例化的autocad實例。在開發服務器上以及在本地IIS服務器上,每件事情都很好。但是當我部署在服務器上的Web應用程序(窗口服務器8)我收到下面的錯誤
Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))
at System.Runtime.InteropServices.Marshal.GetActiveObject(Guid& rclsid, IntPtr reserved, Object& ppunk)
at System.Runtime.InteropServices.Marshal.GetActiveObject(String progID)
at DQMF.CDQMF.createAacdApplicationInstance(String progID)
我認爲這是因爲某些特權問題。因爲在我的本地機器上,autocad實例正在運行系統權限並且在服務器(Windows Server 8)上運行(使用開發服務器)作爲管理權限。
AcadApplication createAacdApplicationInstance(string progID)
{
AcadApplication app = null;
try
{
app = (AcadApplication)Marshal.GetActiveObject(progID);
}
catch (Exception e)
{
try
{
Type acType = Type.GetTypeFromProgID(progID);
app = (AcadApplication)Activator.CreateInstance(acType, true);
app.Visible = false;
app.Width = 1;
app.Height = 1;
app.WindowState = AutoCAD.AcWindowState.acMin;
app.Visible = false;
}
catch (Exception ex)
{
//File.AppendAllText("D:/test/DQMS_log.txt", ex.Message+" progID is: "+progID+Environment.NewLine+"app caption: "+app.Caption);
}
}
return app;
}
如果你想要一些更詳細的,我可以給