在Visual Studio中跑單元測試,遇到以下訊息:

Failed to queue test run 'jeffrey @MyMachine 2008-01-17 09:31:03': Test Run deployment issue: The location of the file or directory 'R:\Assembly\Utility.dll' is not trusted.

訊息很明確,R:是一台網路磁碟機,預設來自非本機的.NET Code在使用上會被設限。要解決也很簡單,透過"Microsoft .NET Framework 2.0 Configuration"配置工具新增一條URL Code Group指向file: //\\ShareServerName\SharedFolder\*即可,詳細的說明可以參考MSDN:

英文: http://msdn2.microsoft.com/en-us/library/bs2bkwxc(VS.80).aspx
中文: http://msdn2.microsoft.com/zh-tw/library/bs2bkwxc(VS.80).aspx


Comments

# by winifrend

請問以下程式碼中 Dim oc As New OleDbConnection("Provider=vfpoledb;Data Source=F:\XXX.DBF;Collating Sequence=machine;") F:\是網路磁碟機,執行時會發生錯誤:Invalid path or file name. 請問要怎麼解決呢?

# by winifrend

我改用 \\AAA\c$\Inetpub\wwwroot\XXX.dbf 也是一樣的錯誤訊息說~ 還有別的方式可以使用嗎??

# by Jeffrey

to winifrend, 網路磁碟機設定會跟著User Profile,所以如果你的程式執行身份跟掛網路磁碟機的身份不同,就可能會出現問題,建議改用UNC(\\servername\share\file)試試。

# by Jeffrey

to winifrend, 程式是在ASP.NET中跑嗎? 那會用卑微到不行的Network Service(XP,2003)/ASPNET(Win2000)帳號跑,是不可能存取C$這類Admin等級的資源分享。要先排除權限因素,建議先放本機、放遠端另外Shared Folder並開放Everyone讀寫,再一步步緊縮權限範圍。題外話是,如果是多人使用的情境,以此種方式共用DB,恐怕很容易形成資源鎖定問題,要當心。 另外,dbf被放在wwwroot下,若IIS沒設定好,有可能整個dbf被人家下載回家,App_Data是比較合適的住所。

# by winifrend

改UNC路徑,已經OK了~謝謝~ 請問我程式中調用 *.exe System.Diagnostics.Process.Start("D:\test.exe", "1") 直接點執行檔是OK的, 但是下指令執行卻不Work, 第一次瀏覽網頁無錯誤訊息, 但太密集的第二次瀏覽就出現錯誤訊息: [並未將物件參考設定為物件的執行個體] 請問是什麼原因呢??真是苦惱阿~~~拜託請大哥解惑喔~

# by Jeffrey

to winifrend, 由ASP.NET另起Process的架構較複雜,我認知上會出問題的機率較高,在設計上多會避開(感覺上路不好走),所以較無這方面的經驗。你不妨到MSDN論壇發問,來往的高手較多,看看有沒有人有這方面的經驗可以分享。

# by winifrend

我後來查到問題所在是.. 我用VS2008點讀test.exe的XXX.aspx右鍵瀏覽, 會開啟一視窗http://localhost:4875,是可以讀取test.exe 但是如果用IIS設定的路徑,http://localhsot,就無法讀取test.exe 但我在IIS該站台的內容/主目錄的[使用權限]已經設定成:指令碼及執行檔,但還是不行呢??? 還有哪個地方忽略掉了呢???

# by Jeffrey

to winifrend, localhost:4875是VS2008的ASP.NET Dev Server(參見http://tinyurl.com/dm9vje),執行身份是當時登入Windows的User,而在IIS下會用ASPNET(2000)或Network Service(XP/2003),權限很小,問題應出在執行身份不同。

Post a comment