簡體   English   中英

Windows Server上的Crystal Reports ActiveX Designer運行時庫導致應用程序崩潰

[英]App crash with Crystal Reports ActiveX Designer Runtime library on windows server

我需要與用Visual Basic 6編寫的舊版軟件進行通信,以從.net應用程序(使用完整框架4.5)啟動報告(以pdf格式輸出)。 我必須確定一個內部使用COM Crystal Report 11運行時對象的ActiveX COM Dll。

我的.net應用程序(該項目目標為x86平台)實例化COM Dll“ MyInterop.dll”,其中包含運行該作業的類“ Ambient”。.執行以下操作(簡化代碼):

Type type = Type.GetTypeFromProgID("MyInterop.Ambient", true);
printerObj = Activator.CreateInstance(type);
printerObj.init();
printerObj.print();

如果我在桌面系統(在Windows 8.1上為我的系統)上運行該應用程序,則一切正常!

如果我在Windows Server 2012 R2上移動應用程序(但我也嘗試在Windows Server 2016上運行),則會崩潰! 我無法得到詳細的錯誤,我得到“ vshost32.exe已停止工作”。

調試起來並不容易,但是當嘗試在COM dll中包含的代碼中嘗試讀取報告查詢字符串時,它似乎崩潰了:

query = CRAXDRT.Report.SQLQueryString

(但是CRAXDRT,我在Dll Com項目上發現對“程序文件(x86)\\ Common Files \\ Business Objects \\ 3.0 \\ bin \\ craxdrt.dll#Crystal Reports ActiveX Designer運行時庫11.0”的引用)

我不明白為什么在Windows服務器系統上嘗試讀取查詢字符串會導致應用程序崩潰..我不知道在哪里搜索信息..任何建議都非常受歡迎

提前致謝

最后我找到了解決方案:

1)首先,我必須使用此命令(從VS cmd提示符)修改.net應用程序的exe二進制文件:editbin.exe / NXCOMPAT:NO [我的二進制文件路徑]
2)將exe添加到DEP異常(在“高級系統設置”->“性能”選項->“數據執行保護”上)

然后就可以了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM