如何在IIS有效布署與管理ASPNET應(yīng)用程式_第1頁
如何在IIS有效布署與管理ASPNET應(yīng)用程式_第2頁
如何在IIS有效布署與管理ASPNET應(yīng)用程式_第3頁
如何在IIS有效布署與管理ASPNET應(yīng)用程式_第4頁
如何在IIS有效布署與管理ASPNET應(yīng)用程式_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

如何在IIS6.0

有效佈署與管理

ASP.NET2.0應(yīng)用程式曹祖聖臺灣微軟資深講師

jimycao@

MCP,MCP+I,MCSA,MCSE,MCDBA,MCAD,MCSD,MCT,MVP大綱重要的

ASP.NET概念A(yù)SP.NET組態(tài)設(shè)檔應(yīng)用程式部署與管理ASP.NET版本與組件版本控管ASP.NET2.0與64位元平臺ASP.NET2.0遠端偵錯IIS6.0應(yīng)用程式集區(qū)管理大綱重要的

ASP.NET概念A(yù)SP.NET組態(tài)設(shè)檔應(yīng)用程式部署與管理ASP.NET版本與組件版本控管ASP.NET2.0與64位元平臺ASP.NET2.0遠端偵錯IIS6.0應(yīng)用程式集區(qū)管理ASP.NET應(yīng)用程式執(zhí)行流程(一)+組件

(Assembly、IL)

Metadata

ResourcesIntermediateLanguageCompiler

(中間碼編譯器)Just-In-TimeCompiler

(即時編譯器)ClassLibrary(類別程式庫)++AssemblyLoader(組件載入器)ClassLoader(類別載入器)Security(安全性檢查)Policy<?xmlversion="1.0"encoding="utf-8"?><configuration><mscorlib><security><policy><PolicyLevelversion="1"><CodeGroupclass="UnionCodeGroup"version="1"PermissionSetName="Nothing"Name="All_Code"Description="Codegroup

grantsnopermissio

nsandformstherootofthecodegrouptree."><IMembershipConditionclas

s="AllMembershipCondition"version="1"/><CodeGroupclass="UnionCodeGroup"version="1"PermissionSetName="FullTrust"Policy<?xmlversion="1.0"encoding="utf-8"?><configuration><mscorlib><security><policy><PolicyLevelversion="1"><CodeGroupclass="UnionCodeGroup"version="1"PermissionSetName="Nothing"Name="All_Code"Description="Codegroup

grantsnopermissio

nsandformstherootofthecodegrouptree."><IMembershipConditionclas

s="AllMembershipCondition"version="1"/><CodeGroupclass="UnionCodeGroup"version="1"PermissionSetName="FullTrust"publicstaticvoidMain(String[]args){Stringusr;FileStreamf;StreamWriterw;try{usr=Environment.GetEnvironmentVariable("USERNAME");f=newFileStream(“C:\\test.txt",FileMode.Create);w=newStreamWriter(f);w.WriteLine(usr);w.Close();}catch(Exceptione){Console.WriteLine("Exception:"+e.ToString());}}程式原始碼+

機器碼

(NativeCode)ASP.NET應(yīng)用程式執(zhí)行流程(二)NativeCodeManager(程式管理員)執(zhí)行GarbageCollection

(垃圾收集)ExceptionManager

(例外管理員)ThreadSupport

(執(zhí)行緒支援)COMInterop

(COM元件整合)DebugEngine

(偵錯引擎)NativeCodeCache

(機器碼快取)Security(安全性檢查)Policy<?xmlversion="1.0"encoding="utf-8"?><configuration><mscorlib><security><policy><PolicyLevelversion="1"><CodeGroupclass="UnionCodeGroup"version="1"PermissionSetName="Nothing"Name="All_Code"Description="Codegroup

grantsnopermissio

nsandformstherootofthecodegrouptree."><IMembershipConditionclas

s="AllMembershipCondition"version="1"/><CodeGroupclass="UnionCodeGroup"version="1"PermissionSetName="FullTrust"Policy<?xmlversion="1.0"encoding="utf-8"?><configuration><mscorlib><security><policy><PolicyLevelversion="1"><CodeGroupclass="UnionCodeGroup"version="1"PermissionSetName="Nothing"Name="All_Code"Description="Codegroup

grantsnopermissio

nsandformstherootofthecodegrouptree."><IMembershipConditionclas

s="AllMembershipCondition"version="1"/><CodeGroupclass="UnionCodeGroup"version="1"PermissionSetName="FullTrust"+

機器碼

(NativeCode)私有組件與公用組件ASP.NET所用到的組件可以放置在以下兩個位置\Bin資料夾中GAC中

\Bin資料夾中的組件私有組件(privateassembly)只能讓目前的ASP.NET應(yīng)用程式使用GAC中的組件公用組件可以讓本機所有ASP.NET應(yīng)用程式使用通用組件快取區(qū)(GAC)GAC(GlobalAssemblyCache)主機上的共用組件快取區(qū),本機上“所有的”應(yīng)用程式都可以共用這些組件為什麼要將組件放到GAC?所有ASP.NET應(yīng)用程式會完全信任GAC中的組件所有ASP.NET應(yīng)用程式都可以存取GAC中的組件必要條件組件必須要有強式名稱(stringname)可以透過

sn.exe工具來產(chǎn)生金鑰使用gacutil.exe來管理GAC組件使用私有組件公用組件建置與管理CodeAccessSecurity(CAS)什麼是CodeAccessSecurity(CAS)?CAS提供ASP.NET應(yīng)用程式的權(quán)限控管不是人員權(quán)限的控管!信任等級Full,High,Medium,Low,MinimalGAC中的組件預(yù)設(shè)是Full的信任等級大綱重要的

ASP.NET概念A(yù)SP.NET組態(tài)設(shè)檔應(yīng)用程式部署與管理ASP.NET版本與組件版本控管ASP.NET2.0與64位元平臺ASP.NET2.0遠端偵錯IIS6.0應(yīng)用程式集區(qū)管理ASP.NET組態(tài)設(shè)定IIS的組態(tài)設(shè)是儲存在IISMetabase中,跟ASP.NET的組態(tài)設(shè)定完全不一樣ASP.NET的組態(tài)設(shè)定儲存在以下兩個地址:Machine.Config:主機設(shè)定%windir%\Microsoft.NET\Framework\<version>\CONFIGWeb.Config:ASP.NET應(yīng)用程式的設(shè)定應(yīng)用程式根資料夾下有一個web.config每個子資料夾下可以有各自的web.configIIS6.0組態(tài)設(shè)定系統(tǒng)根目錄下

Web.config

ASP.NET全域設(shè)定Web.config

每一個應(yīng)用程式.NETFramework

ASP.NETASP.NET+.NETFrameworkMachine.config

.NET全域設(shè)定ASP.NET運作流程ASP.NET管線管線指的是從要求接收到執(zhí)行完畢產(chǎn)生結(jié)果的路徑充份了解ASP.NET管線的運作流程,才能夠了解ASP.NET組態(tài)設(shè)檔中的各項設(shè)定與套用時機處理

ASP.NET要求IIS接收到要求進行身份驗證與授權(quán)IIS找到適當?shù)?/p>

handlerIIS使用ISAPIhandler將要求轉(zhuǎn)向至

aspnet_isapi.dllASP.NETISAPI建立

AppDomain(如果是第一次執(zhí)行)CLR負責執(zhí)行ASP.NET程式碼IIS6.0與

ASP.NET整合使用ISAPI來啓動ASP.NET.NETHandler只能處理

ASP.NET要求兩者功能有重覆的地方傳送回應(yīng)記錄壓縮NTLM基本選擇

HandlerCGI靜態(tài)

檔案ISAPI身份驗證匿名……身份驗證表單Windows對應(yīng)

HandlerASPXTrace………aspnet_isapi.dll大綱重要的

ASP.NET概念A(yù)SP.NET組態(tài)設(shè)檔應(yīng)用程式部署與管理ASP.NET版本與組件版本控管ASP.NET2.0與64位元平臺ASP.NET2.0遠端偵錯IIS6.0應(yīng)用程式集區(qū)管理部署與管理部署ASP.NET2.0應(yīng)用程式(組態(tài)初始化)手動使用

aspnet_regiis.exe命令工具,使用記事本編輯

web.config透過MMC嵌入式管理單元自動使用ASP.NET組態(tài)設(shè)定API在批次檔中使用aspnet_regiis.exe管理

ASP.NET2.0應(yīng)用程式(組態(tài)變更)手動使用aspnet_regiis.exe命令列工具使用MMC嵌入式管理單元使用Web站臺管理工具自動:在批次檔中使用aspnet_regiis.exeaspnet_regiis.exe命令列工具(1)手動組態(tài)部署與管理使用MMC嵌入式管理單元會比較安全但是有些動作必須使用命令列工具來做自動組態(tài)部署與管理很適合用在自動部署與管理上適合重覆的動作執(zhí)行可以合併其它工具做成批次檔aspnet_regiis.exe命令列工具(2)每一個版本的ASP.NET都有各自的工具位於各自的資料夾中例如:C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727常用參數(shù):-disable-enable在IIS安全主控臺中停用或啓用

ASP.NET,但是這對以整合模式執(zhí)行的應(yīng)用程式將沒有任何作用。-i在IIS6.0中安裝ASP.NET並且在IISmetabase中更新

scriptmaps,原本舊版的應(yīng)用程式會升級scripmaps,但是新版的則不會。-ir跟-i參數(shù)一樣,但是只在IIS6.0上註冊ASP.NET,不會更新

scriptsmaps。-r更新IISmetabase中的所有scriptmaps。(不管現(xiàn)在是什麼版本)-s<path>在指定路徑下安裝

scriptmaps。aspnet_regiis.exe命令列工具(3)可以配合aspnet_regiis.exe和其它工具來做ASP.NET應(yīng)用程式佈署adsutil.vbs:建立Web應(yīng)用程式集區(qū)adsutil.vbsCREATEW3SVC/AppPools/BusyPool"IIsApplicationPool"IISweb.vbs:在應(yīng)用程式集區(qū)中建立Web網(wǎng)站

IISweb.vs/createC:\MySource"MySite"/apBusyPool/dontstartaspnet_regiis.exe:安裝ASP.NET2.0和

IISscriptmap2.0C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\apsnet_regiis.exe-enable-irC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\apsnet_regiis.exe-sW3SVC/<metabasepath>aspnet_regiis.exe命令列工具使用aspnet_regiis.exe設(shè)定某一應(yīng)用程式使用ASP.NET1.1,其它使用ASP.NET2.0ASP.NET2.0MMC嵌入式管理單元ASP.NET2.0的組態(tài)設(shè)定是階層式且分散式的這些組態(tài)設(shè)定其實非常的複雜,需要一個介面來做管理與設(shè)定ASP.NET使用者介面嵌入式管理單元是延伸自“網(wǎng)際網(wǎng)路資訊服務(wù)管理員”

(IIS管理員)方便做設(shè)定瀏覽與變更避免設(shè)定錯誤顯示ASP.NET版本顯示設(shè)檔的檔與路徑顯示設(shè)定檔建立時間與上次修改時間ASP.NET2.0MMC介面組態(tài)編輯畫面ASP.NET2.0管理介面供以下頁籤:一般: 資源管理

(伺服器、網(wǎng)站、應(yīng)用程式)自訂錯誤: 自訂錯誤的處理方式與對應(yīng)的錯誤訊息網(wǎng)頁授權(quán): 定義使用者或角色授權(quán)驗證: 設(shè)定驗證方式、MembershipProviders、

RoleProviders應(yīng)用程式: 設(shè)定應(yīng)用程式語言、主版頁面、編碼、

身份識別狀態(tài)管理: 設(shè)定Session與Application狀態(tài)組態(tài)位置: 針對特定位置不同設(shè)定可以設(shè)定:資料庫連線字串應(yīng)用程式設(shè)定編輯的組態(tài)設(shè)定檔案:伺服器網(wǎng)站虛擬目錄組態(tài)編輯畫面一般可以設(shè)定:本機或遠端的自訂錯誤自訂錯誤的URL轉(zhuǎn)向組態(tài)編輯畫面自訂錯誤IIS自訂錯誤:ASP.NET可以使用IIS的impersonatedtoken或者使用自己的授權(quán)規(guī)則IIS可以進行存取檢查,但是不是使用ASP.NET的授權(quán)規(guī)則IIS6.0內(nèi)含一個

AuthorizationManagerISAPI(urlauth.dll),但是這個跟ASP.NET授權(quán)規(guī)則檢查無關(guān)ASP.NET的授權(quán)規(guī)則只會

影響到ASP.NET應(yīng)用程式

,但是不會影響其它IIS

內(nèi)容(靜態(tài)網(wǎng)頁、圖片、

檔案、…)組態(tài)編輯畫面授權(quán)可以設(shè)定:ASP.NET驗證模式MembershipProviderRoleProvider不可以設(shè)定:IIS的驗證模式組態(tài)編輯畫面驗證可以設(shè)定:編譯與執(zhí)行時期組態(tài)偵錯模式全球化設(shè)定身份識別設(shè)定組態(tài)編輯畫面應(yīng)用程式可以設(shè)定:ASP.NET狀態(tài)服務(wù)ASP.NETSQLServer狀態(tài)ASP.NET狀態(tài)服務(wù)與

SQLServer狀態(tài)比較ASP.NET狀態(tài)服務(wù)將ASP.NET狀態(tài)儲存在另外一個行程ASP.NETSQLServer狀態(tài)將ASP.NET狀態(tài)儲存在資料庫中組態(tài)編輯畫面狀態(tài)管理針對某一個特定的路徑下的ASP.NET應(yīng)用程式來啓動或關(guān)掉某些功能例如:“AllowOverride=false”可以避免上層設(shè)定套到指定路徑組態(tài)編輯畫面位置組態(tài)設(shè)定多個應(yīng)用程式組態(tài)編輯者

(系統(tǒng)管理人員、程式開發(fā)人員)有可能將組態(tài)設(shè)定檔設(shè)壞掉組態(tài)設(shè)定檔中的錯誤會造成管理介面的錯誤管理介面無法處理組態(tài)設(shè)定檔中的錯誤注意回收機制:任何針對web.config的變動,都會造成工作行程被回收再重新啟動,這樣會造成Session,Application,Cache遺失。組態(tài)編輯的潛在問題一個不需要伺服器管理權(quán)限就可以管理組態(tài)的介面能夠修改:安全性管理使用者帳戶、角色、存取規(guī)則應(yīng)用程式應(yīng)用程式設(shè)定(key/value)SMTP伺服器指定應(yīng)用程式狀態(tài)(線上/離線)偵錯與追蹤,預(yù)設(shè)錯誤網(wǎng)頁指定提供者MembershipProvider,RoleProviderASP.NETWeb應(yīng)用程式管理員大綱重要的

ASP.NET概念A(yù)SP.NET組態(tài)設(shè)檔應(yīng)用程式部署與管理ASP.NET版本與組件版本控管ASP.NET2.0與64位元平臺ASP.NET2.0遠端偵錯IIS6.0應(yīng)用程式集區(qū)管理ASP.NET版本控管Whatismeantbyversioning?透過ASP.NET版本控管,就可以在同一個主機上同時執(zhí)行多個版本的ASP.NET每一個工作行程或應(yīng)用程式集區(qū)只能有一個版本使用不同版本的aspnet_regiis.exe工具來設(shè)定不同版本的ASP.NET使用不同版本的IISscriptmapASP.NET初始設(shè)定Scriptmapaspnet_regiss.exe的位置ASP.NET沒有事先安裝在IIS上IISScriptmap2.0C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727ASP.NET1.1事先安裝在IIS上既有的scriptmaps不變IISScriptmap繼續(xù)使用1.1版C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727大綱重要的

ASP.NET概念A(yù)SP.NET組態(tài)設(shè)檔應(yīng)用程式部署與管理ASP.NET版本與組件版本控管ASP.NET2.0與64位元平臺ASP.NET2.0遠端偵錯IIS6.0應(yīng)用程式集區(qū)管理在x64平臺上執(zhí)行ASP.NET2.0IIS32bitworkerprocesseson64bitASP.NET1.1虛擬記憶體

2GB~4GB從%systemdrive%\Inetpub\AdminScripts中執(zhí)行:cscript.exeadsutil.vbssetW3SVC/AppPools/Enable32BitAppOnWin64“true”Native64bitASP.NET2.0虛擬記憶體沒有限制開發(fā)人員應(yīng)該要考量所帶來的效能優(yōu)勢x64的問題MMC嵌入式管理單元不能在x64上執(zhí)行大綱重要的

ASP.NET概念A(yù)SP.NET組態(tài)設(shè)檔應(yīng)用程式部署與管理ASP.NET版本與組件版本控管ASP.NET2.0與64位元平臺ASP.NET2.0遠端偵錯IIS6.0應(yīng)用程式集區(qū)管理ASP.NET遠端偵錯遠端偵錯:有錯誤立即進行偵錯,簡化偵錯流程保留完整的“犯罪現(xiàn)場”需求:在ASP.NET執(zhí)行的主機上要安裝VS2005或遠端偵錯元件用戶端必須安裝VS2005與程式的原始碼必須對ASP.NET執(zhí)行的主機有管理權(quán)限偵錯自己的process時必須是Administrators或DebuggerUsers

群組成員偵錯別人的process時,必須是process所在機器的Administrators

群組成員ASP.NET遠端偵錯大綱重要的

ASP.NET概念A(yù)SP.NET組態(tài)設(shè)檔應(yīng)用程式部署與管理ASP.NET版本與組件版本控管ASP.NET2.0與64位元平臺ASP.NET2.0遠端偵錯IIS6.0應(yīng)用程式集區(qū)管理ASP.NET處理模型

IIS5.0TCP/IPWinSock2.0inetinfo.exeaspnet_isapi.dllMetabaseFTP,

SMTP,

NNTPaspnet_wp.exeaspnet_wp.exe

HTTPruntimeApp

DomainApp

DomainUserModeKernelModeRequestResponsenamedpipesRequestResponse工作行程的啟動帳號:

ASPNETASP.NET執(zhí)行時期AttributesAttribute名稱說明appRequestQueueLimitASP.NETRequest佇列大小executionTimeoutRequest最長執(zhí)行時間maxRequestLength最大Request大小minFreeThreadsRequest所佔用的最小執(zhí)行緒數(shù)目minLocalRequestFreeThreadsLocalRequest所佔用的最小執(zhí)行緒數(shù)目透過Attributes可以設(shè)定ASP.NET在執(zhí)行時期的行為設(shè)定在<httpRuntime>

元素中HealthMonitoring在machine.config

中的<processModel>

元素中設(shè)定enable

這個AttributeIIS每2秒會檢查一次所有的工作行程記憶體大小是否有超過實體記憶體的60%

(可以使用memoryLimitAttribute設(shè)定)完成的Request數(shù)目最後一次工作行程回應(yīng)的時間HealthMonitoring當工作行程的記憶體超過指定比例IIS會暫停該工作行程所負責處理的所有要求將這些request重新導(dǎo)向新的工作行程終止與回收舊工作行程的記憶體記錄事件到應(yīng)用程式記錄檔中(如果有設(shè)定logLevelAttribute)如果在偵錯時不想讓IIS回收異常的工作行程,可以設(shè)定RegistryHKLM\Software\Microsoft\ASP.NET\

UnderDebugger=1(DWORD)ASP.NET處理模型

IIS6.0TCP/IPHTTP.SYSinetinfo.exeMetabaseFTP,

SMTP,

NNTPw3wp.exeUserModeKernelModeRequestResponseWASAppPoolMgr.CordingMgr.aspnet_isapi.dllw3wp.exeaspnet_isapi.dllResponseRequest工作行程的啟動帳號:NETWORKSERVICEIIS6.0處理模型穩(wěn)定性提昇啟動工作行程IsolationModeaspnet_isapi.dll會載入工作行程,而非inetinfo.exe增加穩(wěn)定性aspnet_isapi.dllcrash並不會影響WebServer效能提昇HTTP.SYS直接進行webclient與工作行程的連接處理,不需要透過inetinfo.exeOrphaningFailed工作行程WebAdministrationService(WAS)與inetinfo.exe進行銜接監(jiān)控工作行程的狀態(tài)負責終止並回收

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論