[英]Access is denied while running “System.Diagnostics.Process.Start()”
[英]MSAccess not opening database when started using System.Diagnostics.Process.Start()
我無法使用System.Diagnostics.Process.Start()以編程方式啟動Access數據庫(msaccess.mdb)。
這是場景:
G: cd \\ESVONIX "C:\\Program Files (x86)\\Microsoft Office\\Office14\\msaccess.exe" "G:\\ESVONIX\\ESVONIX.mdb" /runtime
esvonix.mdb被編程為在startforms OnOpen事件中啟動一些數據操作。 在數據庫設置中設置了startform。
現在對於奇怪的部分:
但是:如果我從vb.net頁中啟動ERPImport.exe,它將正確啟動Import.cmd,而Import.cmd將啟動msaccess.exe(如taskmgr所示)。 但是,Access不會打開數據庫(未創建ldb文件),並且不會開始處理。 它在taskmgr中“徘徊”,使用了0 cpu時間。 從taskmgr中殺死msaccess.exe后,其余的一切都可以正常工作:Import.cmd完成,ERPImport完成,aspx頁面顯示結果。
我在process.startinfo中嘗試了許多不同的設置,但是無論我的設置如何,結果始終是相同的。
任何想法都非常歡迎。 謝謝
從完整的Office安裝更改為Access Runtime之后,即使在Access調用中沒有/ runtime參數,問題仍然存在。 但是,問題消失了,並且在命令行中在數據庫名稱之后使用命令行Switch / save正確地調用和處理了Access。
更新-解決了不幸的是/ safe參數(請求以安全模式啟動訪問權限)不能解決問題。 添加參數后,該過程確實運行了一次,然后返回到以前的行為。
最后的解決方案是將ApplicationPool設置更改為“ LoadUserProfile = true”。 關於SO處理此參數有很多問題。 就我而言,確切原因尚不清楚,但如果可行,則...
更新2017年7月11日,不同用戶環境中的相同問題。 這次是Windows 2012 Server。 在調用msaccess.exe並將應用程序池設置為LoadUserProfile = true時,安裝程序使用/ safe參數的組合(在高級設置中)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.