Windows server 2008 R2 + IIS7.5,ASP網站設置


Windows server 2008 R2 + IIS7.5,ASP網站設置

1. 讓IIS7支持ASP
  Win2008 IIS7 默認不安裝ASP,如果需要ASP 的支持,需要將這個角色服務選上。

2、相關設置
  應用程序池-->DefaultAppPool-->高級設置-->啟用32位應用程序,置為True
  如果只使用ASP功能,可將2項ASP.NET 以及Classic .NET AppPool停止

  網站-->編輯權限-->網站目錄屬性,安全-->添加 IUSR:修改、讀取、寫權限(僅讀權限可能讀不出 .mdb)
  網站-->IIS-->ASP-->行為-->啟用父路徑,置為True;並視需要修改“調試”里的參數

  網站-->IIS-->默認文檔-->添加網站首頁文檔,如 index.asp

 

以下的權限設置可以參考:

1、在服務器計算機管理中新建一網站用戶用於對網站的匿名訪問,比如用戶名為vcoo
2、IIS7.5中新建網站時物理路徑下面有個【連接為...】,點開后設置為特定用戶為之前新建的vcoo
3、IIS7.5中選擇網站,在右邊的功能視圖中選擇身份驗證,編輯【匿名身份驗證】為新建的vcoo
4、在磁盤網站目錄中添加vcoo用戶的讀取和修改權限
5、值的注意的是硬盤網頁目錄權限要設置網頁web目錄上級目錄的權限(暫時不知為何)
6、可笑的是從網上搜索到的答案是給網頁目錄添加Everyone用戶的完全控制權,找黑呢!可笑!

以下是IIS7.5的權限介紹:

工作進程(Worker Process)
Worker Process是IIS應用程序的宿主, 在任務管理器中可以看到每一個Worker Process就是一個w3wp.exe.

工作進程標識(Worker Process Identity - WPI)
是Worker Process運行時的身份:
  * 在IIS6, Windows 2008 IIS7下, 默認關聯權限是NetworkService.
  * 在Windows 2008 R2 IIS7.5下, 默認是關聯權限是Application Pool Identity. 

這里並沒有提供一個直接的手段來設置Worker Process在什么身份標識下運行, 而是通過Application Pool的身份標識設定來實現的.

應用程序池(Application Pool)
Application Pool包含至少一個或多個Worker Process(Web Garden模式). 在運行時會將Application Pool的身份注入到Worker Process中, 就會以ApplicationPool的身份運行. 可以認為Application Pool與其包含的Worker Process的運行身份是一致的.

應用程序池標識(Application Pool Identity)
是Application Pool運行時的身份:
  * 在IIS6, Windows 2008 IIS7下, 默認關聯權限是NetworkService.
  * 在Windows 2008 SP2 IIS7下, 運行身份設置時除了LocalService,NetworkService, LocalSystem外增加了Application Pool Identity一個選項, 而這個則是一個可以設置權限的虛擬標識.
  * 在Windows 2008 R2 IIS7.5下, 默認是關聯權限是Application Pool Identity. 

虛擬帳戶 Application Pool Identity
只是一個統稱, 並不存在實際的這個命名。他依賴你的Application Pool的名稱,例如我的Application Pool名字叫做: SimonwAppPool, 那么這個虛擬標識的全名是: IIS AppPool\SimonwAppPool運行在此Application Pool下的Worker Process從任務管理器中可以看到w3wp.exe是在SimonwAppPool這個用戶下運行的。可以在文件系統中對這個帳戶分配權限.這么做的好處是能夠將能夠將權限分離開來做粒度更細的配置,不像是NetworkService有很多應用基於此,設置一個權限影響一大片。

不過有時候通過UI找不到這個對象大約是個Bug, 通過命令行icacls處理即可.

用戶組與用戶
在IIS7下需要注意2個特殊的用戶和用戶組, 在IIS6中有着類似的對應關系
IIS6:IIS_WPG - IIS7:IIS_IUSRS
IIS6:IUSR_MachineName - IIS7:IUSR

最大的改變就是他們都成為了系統內置帳戶(built-in account)有着統一的SID,這樣的好處在於做不同機器/系統間的拷貝時可以連帶權限一同拷貝過去了, 在以往因為SID不同換了機器權限是無法有效拷貝的只能挨個手動設置, 現在方便多了.

IIS_IUSRS組
默認他會擁有適當的權限來運行Worker Process. 所有的WPI下的運行帳戶均被隱式的自動加入到這個組中, 以獲得最小的運行權限. 例如當你將SimonwAppPool這個Application Pool的運行身份設置為Application Pool Identity, 那么IISAppPool\SimonwAppPool這個用戶會被自動加入到IIS_IUSRS組中擁有他的全部權限. 因此對此組權限賦值需很小心很容易不知不覺中影響一大片.

IUSR默認匿名帳戶
特別需要注意的別看他是一個匿名帳戶並且沒有密碼, 但他屬於authenticatedusers ,而authenticated users屬於Users組, 因此IUSR默認具備了Users組的權限.

以下為網上找到的其它設置,試過,發現在2008 IIS7.5中,不設也可以:
默認裝完IIS7之后,如果使用ASP程序時,提示數據庫連接失敗,可能是因為MS Jet引擎改變了臨時目錄的位置,但是又沒有對臨時的存取權限所致:

給C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp 目錄添加 Authenticated Users 用戶,並賦全部權限。其中AppData目錄是隱藏的,在進入的時候可以直接在地址欄輸入路徑,或者在文件夾選項里顯示隱藏文件。

 

也有貼子提到給  C:\Windows\Temp 文件夾,添加用戶 Authenticated Users ,並賦全部權限。

鏈接方式:
ServerPath=Server.MapPath("/xxx.mdb")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ServerPath
Set schooldb=Server.CreateObject("Adodb.Connection")
schooldb.Open connstr


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM