在 ASP.NET WebForms 頁面中嘗試通過 SolidWorks Interop 組件打開零件文件(.SLDPRT),引用 SolidWorks.Interop.sldworks 與 SolidWorks.Interop.swconst 後,運行時報錯:
COM 類工廠檢索失敗,CLSID {88CEE7FD-9F58-4962-8483-041AB9AD69A2},錯誤 80040154 (REGDB_E_CLASSNOTREG)。
string filePath = @"E:\a.SLDPRT";
System.Diagnostics.Process.Start(filePath);
// 系統會根據文件關聯自動啟動 SolidWorks 並加載文件
優點:無需引用 Interop、繞過 COM 權限、支持任意文件類型。
缺點:無法程式化控制 SolidWorks 內部操作(如提取特徵、修改參數)。
NamedPipe、TCP Socket 或 MSMQ 發送指令(文件路徑、操作類型、參數);若預算允許,部署 SolidWorks PDM Professional 或使用 SolidWorks Web API (SWA),提供標準化 REST 接口,徹底解決 Web 集成難題。
SolidWorks.Interop.sldworks.dll 設置 Embed Interop Types = False、Copy Local = True;Thread.CurrentThread.SetApartmentState(ApartmentState.STA);regsvr32 sldworks.tlb 確保類別註冊。Web 直接調用 SolidWorks COM 是反模式。推薦「進程啟動法」滿足簡單預覽需求,或構建「獨立服務+IPC」實現深度集成。切勿在 IIS 請求線程中實例化 SldWorksClass。
