2012-11-19 67 views
3

使用InstallShield 2012 Professional安裝ASP.NET網站以及在網絡服務帳戶的安全上下文中運行的自定義應用程序池。當我測試網站時,遇到權限問題(文件權限),網站失敗,並顯示「錯誤:訪問被拒絕」消息。Installshield文件夾權限不起作用

使用InstallShield,我將權限設置爲每個文件以讀取用戶「Authenticated Users」。我通過導航到「應用程序數據」中設置的InstallShield ISM文件中的權限 - >「文件和文件夾」

  • 選擇「目標計算機上的文件夾」,每個文件夾
  • 在右鍵單擊每個文件夾中的「目標計算機上的文件夾「
  • 選擇上下文菜單中的‘屬性’
  • 點擊按鈕‘權限’
  • 添加條目‘名稱(S):’部分用戶的‘身份驗證的用戶’,和域爲空白(選擇」閱讀&執行「,」列出文件夾內容「,」閱讀「)

...然後對每個文件夾,然後對每個文件重複執行此操作。

一旦我測試,我發現我有這個問題。如果我導航到服務器上安裝的實際文件並進行審閱,它們顯示正確,但無法正常運行。事實上,我 - 作爲一個身份驗證用戶 - 沒有權限瀏覽文件夾結構,但因爲我是管理員,所以我可以調整權限並進入。如果我手動重置這些權限的每個文件(和相關文件夾)該網站的功能正常。這意味着應用程序池設置,文件副本和網絡服務帳戶都運行正常,並且問題嚴格與IIS試圖訪問的文件的權限相關。

有沒有人有這個問題,並克服它?如果是這樣,怎麼樣? (我寧願避免使用InstallScript來設置權限。)

回答

5

說明:

當考慮「常規信息」區域中的設置,特別是「鎖定權限」屬性時,InstallShield中文件級權限設置的行爲將有所不同。選擇「傳統Windows Installer處理」時,我從未成功添加明確的權限。我注意到這樣做時,文件夾上的所有繼承權限將消失。此外,儘管看起來權限是在Windows中設置的,但它們表現得好像沒有設置。手動操作測試會顯示它們沒有正確設置。

將「鎖定權限」屬性設置爲「自定義InstallShield處理」時,我能夠添加權限並保持所有繼承的權限不變。有了這個,我能夠將所需的權限應用到「應用程序數據」 - >「文件和文件夾」區域中的根安裝目錄,並且因爲我選擇了「自定義InstallShield處理」,所以我可以選中複選框「應用這些對子對象的權限「位於文件夾屬性的權限區域的高級區域中。

步驟,以完成和解決我的問題:

InstallShield中(ISM文件)...

  • 導航到「常規信息」(左側窗格)
  • 設置鎖定的權限爲「自定義的InstallShield處理」
  • 導航到「應用程序數據」
  • 右鍵單擊根文件夾中的程序要安裝
  • 單擊「屬性」
  • 點擊按鈕「權限」
  • 右鍵單擊屏幕的上半部分在標有白盒區「名稱(S)」
  • 選擇上下文菜單項‘新建’
  • 刪除域用戶離開這一領域的空白
  • 新增用戶‘認證用戶’
  • 選擇複選框以較低的區域(‘閱讀&執行’, 「列出文件夾目錄」,「讀」)
  • 點擊按鈕「高級」
  • 點擊「確定」按鈕
  • 檢查複選框「子對象應用這些權限」 10單擊「確定」按鈕
  • 點擊「確定」按鈕

重新編譯安裝程序並安裝。現在工作。