2011-06-07 58 views
3

我遇到了一個問題,即使在Windows服務未運行時,在「Program Files(x86)」目錄下安裝的Windows服務的App.configs被鎖定以進行編輯之前,我還沒遇到過這個問題。我收到一條消息,說該文件正在使用中,即使不應該。如何允許用戶編輯程序文件下的App.config是記事本還是其他編輯器?

  • 這是關於在Program Files目錄下放置Windows服務的.config文件的具體內容嗎?
  • 如何讓知道.config文件位置的用戶在記事本或其他編輯器中編輯它而不接收文件是「正在使用」消息。

我已經嘗試在三臺不同的機器上安裝Windows服務,並確保服務並未實際啓動/運行。我希望獲得一些有關爲什麼這不起作用的知識,因爲我已經將app.configs編輯爲發生在目錄中的.exes。

回答

1

這可能是因爲文件被寫保護,您應該右鍵單擊它(或它包含文件夾),選擇屬性,並在安全性下,將您的用戶完全控制此文件。只需確保不要通過向所有用戶添加完全控制來在您的應用程序中創建安全鰭。 你也可以嘗試打開文件,右鍵單擊 - >以管理員身份運行,它可能會伎倆。

0

如果你使用的是Vista,Windows Server 2008或Windows 7,那麼我會說它可能是UAC阻止你進行保存(我認爲這將會因爲Program Files路徑的使用而被踢)。以管理員身份運行記事本(在開始欄中找到記事本,右鍵單擊並選擇以管理員身份運行),然後打開文件進行編輯並嘗試保存。

2

Vista和更高版本將不允許用戶修改程序文件dir中的文件。你應該將它們存儲在AppData中。

0

我已經嘗試安裝,爲Windows XP編寫到Windows 7的

對於Windows XP,我總是建立在App.config設置手動檔節目時之前碰到這個問題,他們結束瞭如下:

<appSettings> 
    <add key="port" value="48889" /> 
<appSettings> 

對於Windows 7,我不得不做以下修改:

  1. 右鍵單擊該項目,並選擇屬性。
  2. 點擊設置。
  3. 輸入你想要的應用程序設置(請務必設定範圍用戶 - 在這個例子中)

這改變了的app.config到如下:

<userSettings> 
    <ProjectName.Properties.Settings> 
     <setting name="port" serializeAs="String"> 
      <value>50000</value> 
     </setting> 
    </ProjectName.Properties.Settings> 
</userSettings> 

這將保存用戶文檔和設置中的配置文件。具體取決於您正在運行的Windows版本。但下面的C#代碼會告訴你在哪裏:

System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData); 
相關問題