2012-07-25 18 views
-1

我有一個C#應用程序,它只是從服務器讀取數據並將其轉換爲txt文件。代碼最初來自VB 2005或VB 2008(繼承自我以前的同事辭職)。因此,我將所有代碼導入到vb 2010中。當我調試時,代碼運行得非常好。每當我發佈爲exe文件或獨立版,我遇到「訪問路徑[C:\等等等等等等.txt]被拒絕」。沒有其他更改,我試圖更改文件夾權限並將其設置爲擁有者和最大權限的用戶訪問路徑[C: blah blah blah.txt]被拒絕

我的服務器是Windows Server 2008 R2的

編輯:。我不是使用IIS,因爲它不是一個Web服務器,它只是一個普通的服務器握着我的數據庫

編輯2:我只能讓它運行沒有錯誤,如果我「以管理員身份運行」,而我的用戶沒有管理權限

+0

請檢查目錄中可執行文件的權限。 – SMK 2012-07-25 07:43:07

+0

嗨,先生,權限設置爲用戶的最大權限,甚至改變了所有權。 – Newbie 2012-07-25 07:45:16

+0

沒有問題,你已經有了答案。 – leppie 2012-07-25 07:45:25

回答

1

原因可能是因爲你的應用程序是一個Click Once應用程序,它將在用戶環境下運行時需要提升,因此如果你沒有權限訪問C:\等等等等等等,也無法使用你的應用程序。

我向你推薦的建議?

我個人會將文本文件寫入用戶文檔文件夾或與用戶配置文件相關的任何內容,這樣您的單擊應用程序永遠不需要升級,因爲它現在在具有嚴格限制的託管環境中運行。

希望這可以清除一點點東西。

1

轉到您的exe文件的屬性,並選中「以管理員身份運行」檢查。

+0

是的先生,它被設置爲「以管理員身份運行」 – Newbie 2012-07-25 07:55:02

0

不要寫入系統驅動器的根目錄......這裏就是問題所在(較新的操作系統具有權限設置,以防止任意應用程序污染系統根目錄)。

+0

嗨Lucero,是的,我明白這一點。因此,我將根改爲C:\ [我想要將數據導出到的文件夾] – Newbie 2012-07-25 07:54:44

0

右鍵單擊包含文件的文件夾,選擇「Properies」。轉到安全選項卡。點擊「編輯權限」...點擊「添加」。當提示輸入用戶名時,輸入Everyone。根據需要設置權限(至少讀取,可能的創建/更改)。

現在嘗試運行可執行文件作爲一個非管理員

而不是Everyone你可以用你希望能夠使用的應用程序或者是在任何Windows saecurity組的特定用戶的用戶名。

+0

Hi @Basic,我試過了,它把我扔回原來的錯誤。沒關係。我的服務器人員告訴我,他們必須是管理員才能訪問服務器數據庫。謝謝 :) – Newbie 2012-07-25 08:21:38