台灣最大程式設計社群網站
線上人數
1207
 
會員總數:244666
討論主題:188768
歡迎您免費加入會員
討論區列表 >> Blog精華文章 >> IIS6 轉 IIS7 的設定對應
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
IIS6 轉 IIS7 的設定對應
價值 : 0 QP  點閱數:8563 回應數:0

樓主

towns 版主
中級專家
5027 174
5576 901
發送站內信

捐贈 VP 給 towns

        towns會在這裡寫入一些關於 IIS6 與IIS7 設定上的相關問題,windows server 2008有很多的設定者整合在伺服器管理員中,進入後,可以看到IIS7角色的所有資訊,如錯誤訊息(事件)、相關服務等…


虛擬路徑對應
        towns 有台主機要昇級為 windows 2008 server 64bit,當然就是使用IIS7,但在設定上出現了很大的問題,在 towns 管理的站台有用到虛擬路徑(他是要交由程式aspnet_isapi.dll 處理),可是IIS7 要在哪裡設定非常的頭大,沒設好就會出現這樣的錯誤(http 404錯誤 如圖error.jpg),下面會說明 IIS6 的設定與IIS7設定的對應

        在IIS6 中,到 指定站台按滑鼠右鍵==>內容==>主目錄==>設定==>插入萬用字元應用程式對應,執行檔中放入“C:\WINNT\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”,並取消“確認該檔案是否存在”,如圖iis6set.jpg,設定完成後虛擬路徑會自動交由程式處理,站台就可正常運作了

        在IIS7 中需設定兩個地方
    1. 指定站台==>處理常式對應==>新增萬用字元指令碼對應==>設定執行檔 “C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”(如圖iis7set.jpg),名稱可自定(ASP.NET-ISAPI-2.0-Wildcard)
    2. 應用程式集區 ==>指定集區按滑鼠右鍵 ==>基本設定 ==>將 “Managed 管線模式”改為“傳統”,如圖iis7set2.jpg
    設定完成後,重新啟動指定站台,問題就處理完成
註1:如果像 towns使用64bit 系統,請將C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll,也加入萬用字元指令碼對應
註2:.net 4.0也會有相同的問題

相關資料(感謝小舖SteveT大、點部落gipi大及Ruslan大的資訊提供):
http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/
http://www.dotblogs.com.tw/jimmyyu/archive/2009/10/19/11124.aspx
http://www.blueshop.com.tw/board/FUM20050110200833I8T/BRD20100412140941FQP.html


啟用上層路徑
IIS6 ==>在指定站台按滑鼠右鍵 ==>內容 ==>主目錄 ==>設定 ==>選項 ==>啟用上層路徑
IIS7 ==>在指定站台 ==>選ASP小圖  ==>啟用上層路徑改為True


建立子站台
IIS6 ==>在指定站台下的目錄按滑鼠右鍵 ==>內容 ==>點“建立”
IIS7 ==>在指定站台下的目錄按滑鼠右鍵 ==>轉換成應用程式


建立虛擬目錄
IIS6 ==>在指定站台按滑鼠右鍵 ==>內容 ==>點“新增”==>虛擬目錄
IIS7 ==>在指定站台按滑鼠右鍵 ==>新增虛擬目錄 ==>打入別名及實體路徑


關於語系設定與變更
IIS6 中無此功能
IIS7 有支援多種編碼功能,他的設定在 .NET全球化中


 轉址設定
IIS6 ==>在指定站台按滑鼠右鍵 ==>內容 ==>主目錄 ==>某個URL位置重新導向
IIS7 ==> HTTP重新導向 ==>將要求重新導向目的地
註:IIS7發生了怪怪的問題,當 towns使用重新導向的功能後,有兩個站台,都會重新導向 = =,原來是設定相同目錄造成的問題


Log 檔路徑查尋
IIS6 ==>在指定站台按滑鼠右鍵 ==>內容 ==>啟用記錄格式 ==>內容 ==>記錄目錄及 記錄檔名稱
預設路徑:C:\WINDOWS(WINT)\system32\LogFiles\
IIS7 ==>點選指定站台 ==>右框中的記錄 ==>記錄檔 ==>目錄 ==>記錄目錄,記錄檔名稱及資料匣找不到
預設路徑:C:\inetpub\logs\LogFiles\
註:要確認IIS7 Log檔資料匣,要從 站台==>進階設定==>識別碼 來判斷,也可以直接點站台,看ID


程式集區選擇
IIS6 ==>在指定站台按滑鼠右鍵 ==>內容==>ASP.NET==>ASP.NET version 中選擇
IIS7 ==>應用程式集區 ==>在指定的集區上按滑鼠右鍵 ==>內容 ==>基本設定 ==>.NET Framework 版本


windows server 2008 安ASP.NET 1.1
相關連結:http://blogs.iis.net/bills/archive/2008/06/02/installing-asp-net-1-1-with-iis7-on-vista-and-windows-2008.aspx


 重新啟動IIS
IIS6 ==>開啟IIS ==>在[主機名稱](本機電腦)上按滑鼠右鍵==>所有工作==>重新啟動IIS
IIS7 ==>開啟伺服器管理員 ==>角色 ==>網頁伺服器(IIS) ==>在右邊的框中可以看到重新啟動


查看IIS事件
IIS6 ==>開啟事件檢示器 ==>應用程式
IIS7 ==>開啟伺服器管理員 ==>點角色 ==>點網頁伺服器(IIS) ==>第一個框,就是所有IIS的事件


一些Blog文章,這些是 towns 在轉移站台所找到的一些資料。感謝每一位無私奉獻的大大們。
1. 簡易說明應用程式集區,Managed 管線模式中的傳統(classic mode)與整合式(integrated mode)的設定與區別,不過 towns並不知道傳統與整合式有什麼差別
http://www.goodman-lai.idv.tw/2009/04/iis-75.html

2. 在昇級時出現中文亂碼問題的處理方式
http://blogs.msdn.com/roberthu/archive/2008/05/28/windows-server-2008-iis-7-0-asp-net.aspx


啟用與匯入憑證方式
1. 啟用443 port
IIS6 ==>開啟IIS ==>在指定站台上按滑鼠右鍵==>到網站識別碼==>在SSL連接埠中自己打入443
IIS7 ==>開啟IIS ==>點指定站台 ==>繫結 ==>新增==>類型==>選 https,連接埠自動轉為443
註:如果在IIS7中要測試憑證功能,可以直接選用WMSvc這個假憑證

2. 匯入憑證
IIS6 詳見各家憑證中心 
IIS7 詳見保哥資料(http://blog.miniasp.com/post/2010/03/02/The-Complete-Guide-for-Purchase-Install-SSL-Certificate-to-IIS7.aspx


單一檔案加密
IIS6 ==>開啟IIS ==>點指定站台 ==>點指定檔案,按滑鼠右鍵 ==>內容 ==>檔案安全性設定 ==>通訊安全 ==>編輯 ==>勾選“必需使用安全通道(SSL)”,勾選“需要128位元加密”
IIS7 ==>


確認是否有安裝.net 3.5
IIS6 
 1.新增移除中可以看到。
 2.可以到C:\WINDOWS\Microsoft.NET\Framework\看看,是否有v3.5資料匣
IIS7
 1.伺服器管理員==>角色==>角色服務中,可看到.NET Framework 3.5.1是否已安裝
 2.可以到C:\WINDOWS\Microsoft.NET\Framework\看看,是否有v3.5資料匣
    可以到C:\WINDOWS\Microsoft.NET\Framework64\看看,是否有v3.5資料匣


IE9相容性設定
有些網頁使用IE9瀏覽時,會出現CSS異常,可以這樣設定
IIS6
在指定站台按滑鼠右鍵==>「內容」==>「HTTP 標頭」==>「MIME 類型」==>新增 ==>設定副檔名為 .css、MIME類型設為 text/css ==>確定 ==>重新啟動IIS
IIS7 
到指定站台 ==>右圖“HTTP 標頭”簽滑鼠左鍵兩下 ==>==>設定副檔名為 .css、MIME類型設為 text/css ==>確定 ==>重新啟動 IIS

資料來源:艾堤科技  流雲
註:IIS7已有設定,不需手動設定


子目錄重新導向
IIS6 
在子目錄按滑鼠右鍵 ==>內容 ==>這個資源的內容應該來自:這三項依需求選擇,如果是轉址請選 某個URL重新導向,並打下網址後確認

IIS7
點選指定子目錄 ==>右圖中選 HTTP重新導向 ==>勾選 將要求重新導向自此目的地,並打下網址 ==>套用
註:如果在右邊沒有出現 HTTP重新導向,請在 伺服器管理員 ==>角色 ==>新增 HTTP重新導向 的角色服務


關閉特定目錄的執行權限
IIS6
點選指定站台按滑鼠右鍵 ==> 內容 ==> 主目錄 ==> 執行權限 ==> 選擇“無”
點選指定虛擬目錄按滑鼠右鍵 ==> 內容 ==> 虛擬目錄 ==> 執行權限 ==> 選擇“無”

IIS7
點選指定站台(虛擬目錄、子目錄)==> 處理常式對應 ==> 開啟功能 ==> 編輯功能權限 ==> 將指令碼勾選取消

資料來源:http://blog.miniasp.com/post/2010/08/04/IIS7-How-to-Turn-off-Execute-Permission.aspx


限制子目錄讀取
IIS6
點選指定子目錄按滑鼠右鍵 ==> 內容 ==> 目錄安全性設定 ==> IP位置及網域名稱限制 ==> 接下就自行設定了

IIS7
點選指定子目錄 ==> IP位置及網域限制 ==> 開啟功能 ==> 點右上方有新增允許項目及新增拒絕項目 ==> 這裡就是自行設定了
註:如果只要指定IP或網段開放讀取,將“編輯功能設定”中“未指定的用戶端存取”設為“拒絕”


關於字型載入問題
字型載入在IIS6與IIS7中有相同的問題,必需重啟動系統(reboot OS),IIS才會將字型吃入。單單重新啟動 IIS 是無效的


IE7相容性設定
IIS7
開啟 IIS7 ==> 指定網站 ==> HTTP回應標頭 ==> 名稱:X-UA-Compatible,值:IE=EmulateIE7

IIS6
指定網站 ==> 滑鼠右鍵 內容 ==> HTTP標頭 ==> 自定標頭 新增 ==> 自訂標頭中打入 X-UA-Compatible,自定標頭值打入 IE=EmulateIE7

資料來源:
Will大blog http://blog.miniasp.com/post/2011/02/01/Understanding-Internet-Explorer-8-Compatibility-Technology.aspx


IIS 引用 MSSQL express 問題
IIS7 載入MSSQL express 2008 R2需將載入使用者設定檔設為true
應用程式集區(指定名稱)按滑鼠右鍵==> 進階設定==>載入使用者設定檔設為true

IIS6 載入MSSQL express 2005
不需要設定


驗證與指定存取
IIS7
指定網站 ==> 驗證 ==> 匿名驗證

IIS6
指定網站 按滑鼠右鍵 ==> 內容 ==> 目錄與安全性設定 ==> 驗證及存取控制


設定檔位置
IIS7
C:\Windows\system32\inetsrv\MetaBase.xml

IIS6
C:\WINNT\system32\inetsrv\MetaBase.xml


開啟與關閉IIS7 32bit 工作者程序
towns並不知道這個的用途,不過,看來在開發VB程式時是有必要的處理的
IIS7(使用指令)
1. Disable 32-bit worker processes in IIS running this command:

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 0

2. Enable 32-bit worker processes in IIS running  this command:

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
資料來源:小舖討論區 Chen大回應
http://www.blueshop.com.tw/board/FUM20050110200833I8T/BRD200902191842477CS.html

IIS6 沒這個問題


流量與連線數限制
IIS7
點選指定站台 ==> 右方“網站管理” ==> 設定 ==> 限制
可同時看到“限制頻寬使用量”及“連線限制”
IIS7的 連線逾時(session time out),是放在這裡

IIS6
在指定站台上按滑鼠右鍵 ==> 內容 ==> 效能
可同時間到“頻寬節流設定”及“網站連線”
IIS6的 連線逾時(session time out),是放在 網站 ==> 連線


應用程式集區身份識別
IIS7
到 應用程式集區 ==> 選定應用程式集區 ==> 到右邊的 進階設定 ==> 識別
預設使用 ApplicationPoolIdentity 帳號(IIS AppPool\應用程式集區名稱)
這個帳號會造成在修改網頁資料匣安全性時,造成網頁無法讀取的問題,因為資料匣預設值中,並沒有提供 ApplicationPoolIdentity 帳號,所以.net 無法存取該資料匣,建議在使用IIS7建立網站時,將這個帳號(IIS AppPool\應用程式集區名稱)一併放入,可避免應用程式存取資料匣權限不足問題,而設定後,也才能正常變更資料匣權限。
註:這個群組在本機使用者群組中,是沒有的,必須使用 (IIS AppPool\[應用程式集區名稱])這樣的打法,才會出現
相關資料:
caubekimo大的blog http://www.dotblogs.com.tw/caubekimo/archive/2010/09/19/17805.aspx
ashiang大的blog http://ashiang.blogspot.tw/2011/07/iis75-application-pool-identity.html

IIS6
到 應用程式集區 ==> 選定應用程式集區 ==> 按滑右鍵 到內容 ==> 身份識別
預設使用 網路服務(Network service)帳號


預設的匿名存取帳號
IIS7
開啟IIS7,點選主機名稱 ==> 右方圖中的 驗證 點滑鼠左鍵兩下 ==> 點 匿名驗證 ==> 點右邊 編輯 ==> 這裡就可以看到 匿名驗證 預設使用者
預設使用 IUSR
網站的資料匣如果有上傳功能,需要開放這個帳號可以讀寫

IIS6
開啟IIS6,點選指定站台 ==> 按滑鼠右鍵,點 內容 ==> 目錄與安全性設定 ==> 驗證及存取控制 ==> 編輯 ==> 這裡就可以看到 匿名存取使用的帳號
預設使用 IUSR_[主機名稱]
網站的資料匣如果有上傳功能,需要開放這個帳號可以讀寫


IIS7 錯誤訊息
因為網頁伺服器上的[ISAPI 及CGI 限制] 清單設定,而無法提供您要求的網頁
點選“ISAPI及CGI限制” ==> 將 ASP.NET v4.0.30319 設為允許 ,就可以了
資料來源:July大的blog http://graduatedasp.blogspot.tw/2011/10/iisisapi-cgi.html


IIS7.5 錯誤訊息
HTTP 錯誤 500.21 - Internal Server Error
處理常式 "PageHandlerFactory-Integrated" 的模組清單中有錯誤的模組 "ManagedPipelineHandler"
原因:先裝了.net 4.0,再加裝IIS7.5
處理方式:使用指令重新註冊.net 4.0
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
資料來源:winsper大的blog http://blog.whisper.tw/2011/01/iis-0x8007000d.html

補充:如果在測試網頁時,發生了 .net load異常,都可以考慮試一下這方式


強制 IIS 使用指定IP(For 2003、IIS6)
 1. 由server 2003 光碟中取出/support/tools/Support.cab,並解壓取出httpcfg.exe檔案,並放到/windows/system32/中
 2. 使用指定綁定IP
httpcfg set iplisten -i 192.168.8.201
 3. 重新啟動IIS

註1:確認是否綁定 httpcfg query iplisten
註2:刪除綁定 httpcfg delete iplisten -i 192.168.8.201

資料來源:lanc大的blog
http://ezcshi.pixnet.net/blog/post/18901890-%E4%BD%BFiis%E8%88%87apache%E4%BB%A5%E5%96%AE%E7%B6%B2%E5%8D%A1%E9%9B%99ip-%E5%85%B1%E7%94%A880port%E6%96%B9%E5%BC%8F


關於IIS 7 資料匣權限問題
towns偶爾會發生在搬移網站時資料匣權限錯誤的情形(資料匣安全性中無users這個群組,資料匣繼承功能錯誤),這時會發生網頁無法開啟的錯誤訊息(如圖iis7_useriis7_user_2),將users群組加入該資料匣中並提供讀取權限,這個問題就解決了。但為什麼會發生無繼承的情形,目前towns並不知道

這個問題也會發生在當towns變更已架設好的網站的路徑時,也會發生這樣的問題(如圖iis75_user
查看了一下IIS7預設的路徑(C:\inetpub),他有開放users可讀取的權限,而(C:\inetpub\wwwroot)還加上了IIS_USERS可讀取的權限

towns發生這樣的問題很有可能是因為towns 不習慣使用預設路徑造成


IIS7 上傳與下載檔案大小限制設定
towns今天發生了圖片無法上傳的問題(使用FCKeditor上傳),主因是IIS7 上傳檔案大小是有限制
ASP程式預設的上傳大小為200kb
ASP程式預設的下載大小為4194304b
上傳大小修改位置:點指定網站 ==> 點選ASP ==> 點限制內容 ==> 要求的實體上限 ==> 改為2000000(2mb)
下載大小修改位置:點指定網站 ==> 點選ASP ==> 點限制內容 ==> 回應緩衝處理限制

ASP.NET 上傳檔案限制設定
在 C:\Windows\system32\inetsrv\config\applicationHost.config 檔案中<requestFiltering></requestFiltering>間加入
<requestLimits maxAllowedContentLength="30000000" />
設定為30MB

資料來源:
mis2000lab大的blog http://www.dotblogs.com.tw/mis2000lab/archive/2012/01/03/iis_upload_download_limit.aspx
小朱大的 blog http://www.dotblogs.com.tw/regionbbs/archive/2009/02/16/iis7_fileupload_maxallowedcontentlength.aspx
MAX大的 blog http://maxtellyou.blogspot.tw/2010/02/aspiis7.html
徐克大的 blog http://163.32.142.5/blog/post/4/4929


IIS預設封鎖googlebot
towns公司中有一台在開發站台的demo機,有對外開放以提供客戶查看網站,但常常會發生googlebot來取得資料,而正式站台的搜尋會出現在測試站台的下面(甚至只找到測試站台 = =),towns必需將IIS預設封鎖如googlebot等搜尋機器人,不過,這麼多的站台要一個一個寫robot.txt檔,towns會發瘋的,希望能找到一個方便的方式,直接設定IIS預設封鎖bot,這樣就方便多了

依照國外大大Casey的說明,是架設一個通用站台,並使所有站台先讀取通用站台中的資料,以達到預設封鎖的目地。不過,這樣的方式必需修改每一個站台的web.config,仍有一些麻煩處,不知道是否有方式可以直接寫入IIS的設定檔中呢?
國外大大的回應:http://serverfault.com/questions/165019/how-do-you-create-a-single-robots-txt-file-for-all-sites-on-an-iis-instance


應用程式集區 傳統與整合式差別(IIS7)
傳統:伺服器會透過 Aspnet_isapi.dll 路由 Managed 程式碼的要求
整合:伺服器將使用 IIS 及 ASP.NET 的整合式要求處理管線來處理要求
資料來源:微軟
http://technet.microsoft.com/zh-tw/library/cc753449%28v=ws.10%29.aspx



本篇文章發表於2012-05-04 10:32
== 簽名檔 ==
來吧~~~電腦:http://blog.xuite.net/towns/hc
專修小問題:http://hc.chongyang-go.idv.tw
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.