常見問題解答:Internet信息服務(wù)

發(fā)布時(shí)間:2007/5/2 19:07:00
問:我怎樣對(duì)IIS設(shè)置進(jìn)行備份?
  答:有多種方法可以用來(lái)完成此項(xiàng)工作。在Internet信息服務(wù)管理器控制臺(tái)(IIS插件)中所設(shè)置的屬性和值都被儲(chǔ)存在Metabase.bin文件中,缺省情況下,這個(gè)文件位于'C:winntsystem32inetsrv'目錄中。在IIS 5.0中,你可以從內(nèi)置的IIS插件中來(lái)備份元數(shù)據(jù)。如果需要進(jìn)行此工作,請(qǐng)選擇桌面上的計(jì)算機(jī)圖標(biāo)然后單擊右健。然后再選擇'備份/恢復(fù)配置'。然后你就可以選擇備份現(xiàn)有元數(shù)據(jù)設(shè)置或者恢復(fù)以前的版本。與此相同的選項(xiàng)在MetaEdit 2.2中也可找到。

  當(dāng)你以這種方式保存了元數(shù)據(jù)時(shí),你的備份將以.md0文件的格式儲(chǔ)存在C:winntsystem32instrvmetaback文件夾中。當(dāng)你執(zhí)行備份時(shí),文件將使用你所指定的名稱,如Pre-Lockdown.md0。如果你使用相同的文件名創(chuàng)建了多個(gè)備份,他們將使用數(shù)字逐漸遞增的擴(kuò)展名,如Backup.md0,Backup.md1等等。

  在你的元數(shù)據(jù)嚴(yán)重?fù)p壞的情況下,你將不能啟動(dòng)IIS。此時(shí),你也不能從IIS插件或metaedit中執(zhí)行恢復(fù)操作。如果真的發(fā)生了類似情況,你就可以通過從備份文件夾中選用最合適的.md0(.md1等等)元數(shù)據(jù)備份文件來(lái)替換Metabase.bin。如果你的備份文件沒有錯(cuò)誤,IIS將會(huì)立刻啟動(dòng)。

  制作元數(shù)據(jù)的備份還有其它兩個(gè)意義。你可以使用xcopy,scopy或其它復(fù)制程序來(lái)簡(jiǎn)單地復(fù)制Metabase.bin文件。你應(yīng)該先停止Internet服務(wù),以保證你的元數(shù)據(jù)是最新的并且不在使用狀態(tài)中。

  最后,我們還提供了兩個(gè)腳本--metaback.vbs和metarest.vbs--它們位于Inetpub/IISSamples/sdk/admin(如果你在IIS 5.0上安裝了IIS SDK)文件夾中或在IIS Resource Kit/Utility/ADSI Admin Scripts文件夾(如果你安裝了IIS 4.0 Resource Kit)中。這些.vbs腳本使用了一個(gè)ADSI命令,它是專門為創(chuàng)建元數(shù)據(jù)備份而提供的。

  問:什么工具能幫助我施加一個(gè)負(fù)載并進(jìn)行應(yīng)用程序的強(qiáng)度測(cè)試?
  答:有許多工具可以用來(lái)實(shí)現(xiàn)這個(gè)目的。而且有一些功能完備并且十分有用的商業(yè)工具可供您利用。Microsoft提供了Web Application Stress Tool,在大多數(shù)情況下,對(duì)于在Web服務(wù)器上施加負(fù)載并檢查它在一定壓力下是否能夠正常工作這一目的,這個(gè)工具是足夠用的。預(yù)先執(zhí)行測(cè)試是一個(gè)好主意,因?yàn)樵趹?yīng)用程序的設(shè)計(jì)過程中,問題并不會(huì)顯現(xiàn)出來(lái),除非在這個(gè)服務(wù)器上施加一定負(fù)載--而且在一個(gè)成品服務(wù)器上你肯定不希望發(fā)現(xiàn)任何問題。

  Web Application Stress Tool有幾個(gè)有用的特性,它可以將您在Web站點(diǎn)中進(jìn)行的指向和點(diǎn)擊操作記錄為一個(gè)可重新回放的腳本。當(dāng)你遠(yuǎn)程監(jiān)視服務(wù)器上的性能監(jiān)視計(jì)數(shù)器時(shí),就能同步地在一個(gè)或多個(gè)客戶端上重新播放這個(gè)腳本。另外,你還能指定詳細(xì)資料,如用于測(cè)試身份驗(yàn)證吞吐量所使用的用戶賬號(hào),以及顯示請(qǐng)求和測(cè)試日程之間的延遲。

  在你安裝Web Application Stress Tool的時(shí)候,它還在計(jì)算機(jī)上安裝了一個(gè)名為'WebTool'的服務(wù)。如果你確信不再需要這個(gè)工具,您可以卸載Web Application Stress Tool。

  問:當(dāng)Localstart.asp返回了一個(gè)'正在創(chuàng)建中'響應(yīng)時(shí),發(fā)生了什么事情?
  答:這個(gè)'正在創(chuàng)建中'頁(yè)面應(yīng)該出現(xiàn)在從一個(gè)遠(yuǎn)程的IP地址對(duì)默認(rèn)的Web站點(diǎn)進(jìn)行訪問的時(shí)候。如果你從一個(gè)內(nèi)部的IP地址訪問,IIS在線文檔就會(huì)被顯示。如果你在Internet Explorer中訪問http://localhost,并且未安裝Default.htm或Default.asp,則Web站點(diǎn)將會(huì)運(yùn)行IISStart.asp。IISStart.asp將檢查下面兩個(gè)條件:
  ·你是否已經(jīng)輸入了'localhost'。
  ·客戶端的IP地址是否與服務(wù)器端IP地址相匹配。
  在任一種情況下,你都將會(huì)被重定向到Localstart.asp,然后打開所需要的頁(yè)面。
  確定這些文件在你的系統(tǒng)上是存在的,并且在'文檔'選項(xiàng)卡中調(diào)用的是IISStart.asp。為了確定這些,你可以嘗試寫一段簡(jiǎn)短的.asp網(wǎng)頁(yè),來(lái)顯示服務(wù)器變量的值,如下:
  Your local IP address is 207.46.249.190
  The client IP address is 210.82.106.28
  如果IP地址沒有被識(shí)別,則可能是因?yàn)長(zhǎng)ocalstart.asp頁(yè)未被調(diào)用。當(dāng)然,你總是可以通過直接使用http://localhost/localstart.asp來(lái)調(diào)用它。如果沒有配置默認(rèn)文檔,在直接調(diào)用Localstart.asp時(shí)就可能出現(xiàn)問題。腳本將返回下述消息:
  當(dāng)前,你沒有為用戶設(shè)置一個(gè)默認(rèn)文檔。所有試圖連接到這個(gè)站點(diǎn)的用戶都將收到一個(gè)'正在創(chuàng)建中'的頁(yè)面。

  問:能在Microsoft Windows XP Home Edition中安裝IIS或PWS嗎?
  答:Windows XP Home Edition不支持任何版本的IIS,沒有任何可靠的方法能使其運(yùn)行IIS。Windows XP Home Edition并未設(shè)計(jì)成一個(gè)Web應(yīng)用程序的開發(fā)平臺(tái)。在升級(jí)到Windows XP Professional后,你就可以在系統(tǒng)上安裝IIS 5.1,以便利用ASP.Net進(jìn)行開發(fā)工作。在Windows XP Professional上的IIS 5.1是一個(gè)全功能的Web服務(wù)器端,但是它只能建立10個(gè)并發(fā)連接,這是因?yàn)樗皇且粋(gè)工作站操作系統(tǒng)而不是服務(wù)器平臺(tái)。Windows XP Home Edition還有一些與Windows XP Professional相同的其它限制,因?yàn)樗彩且粋(gè)工作站操作系統(tǒng)而不是服務(wù)器操作系統(tǒng)。大體上,你會(huì)發(fā)現(xiàn),在Windows 2000 Professional和Windows 2000 Server或Advanced Server上的IIS 5.0中,這些差別是相類似的。無(wú)論怎樣,對(duì)于使用.NET Framework來(lái)開發(fā)基于Web 的應(yīng)用程序來(lái)說,Windows XP Professional才是一個(gè)優(yōu)秀的環(huán)境。

  問:ISAPI篩選器能在一個(gè)單獨(dú)的進(jìn)程空間中運(yùn)行嗎?
  答:為與Web服務(wù)器協(xié)同工作所開發(fā)的應(yīng)用程序都有著特殊的要求。例如,你不能從一個(gè)URL中調(diào)用一個(gè)Notepad.exe實(shí)例并且希望在客戶端的系統(tǒng)上看到一個(gè)記事本窗口。為了從IIS中與請(qǐng)求進(jìn)行交互(并不是CGI),程序必須使用ISAPI編寫。ISAPI是Internet服務(wù)器應(yīng)用程序接口(Internet Server Application Programming Interface)的縮寫。有兩種可執(zhí)行的ISAPI:擴(kuò)展和篩選器。
  可以從一個(gè)URL中直接調(diào)用ISAPI擴(kuò)展,如http://localhost/myisapi.dll。假設(shè)你已經(jīng)在目錄上配置了IIS,允許腳本和可執(zhí)行程序,并且用戶有執(zhí)行NTFS的許可權(quán)限,則dll將會(huì)運(yùn)行。IIS允許你指定應(yīng)用程序是在進(jìn)程內(nèi)(作為Inetinfo部分)運(yùn)行還是在進(jìn)程外(作為IIS 4.0上的MTX部分,或者作為IIS 5.x部分的dllhost)運(yùn)行。當(dāng)一個(gè)應(yīng)用程序在進(jìn)程外運(yùn)行時(shí),Inetinfo就從問題中被隔離出來(lái)。如果應(yīng)用程序出現(xiàn)故障,Web服務(wù)器也會(huì)出現(xiàn)故障。
  ISAPI篩選器又是另一個(gè)內(nèi)容。ISAPI篩選器能改變進(jìn)入或離開IIS的數(shù)據(jù)流。因此,ISAPI篩選器有著非常強(qiáng)大的功能,能用來(lái)實(shí)現(xiàn)客戶日志、驗(yàn)證或更改數(shù)據(jù)流。對(duì)IIS 5.0來(lái)說,在ISAPI篩選器中實(shí)現(xiàn)的特性包括數(shù)據(jù)壓縮、摘要驗(yàn)證和URLScan。
  因?yàn)楹Y選器在IIS中扮演了一個(gè)如此重要的角色,所以它們總是作為Inetinfo部分運(yùn)行在過程內(nèi)。因此,正確的ISAPI篩選器結(jié)構(gòu)對(duì)服務(wù)器的正常運(yùn)行是必備的。你可能希望與Microsoft 產(chǎn)品支持服務(wù)一起工作來(lái)確定問題,因?yàn)樘幚磉@種例外可能是一個(gè)較大的挑戰(zhàn)。
  基于這個(gè)考慮,有兩個(gè)新技術(shù)可以使生活更加輕松,IIS 6.0就是其中的一個(gè)。由于它是一個(gè)新的體系結(jié)構(gòu),所有的ISAPI篩選器都在進(jìn)程外運(yùn)行。這將使Web 服務(wù)器從一個(gè)捉摸不定ISAPI篩選器中隔離開來(lái),但這實(shí)際上并沒有真正解決問題。為了解決這個(gè)問題,你可以考試使用.NET語(yǔ)言在ISAPI方面做一些工作。通使用C++設(shè)計(jì)ISAPI篩選器相比,使用.NET實(shí)現(xiàn)相同的功能要大為簡(jiǎn)單。

  問:我在哪能獲得這樣的示例代碼--它顯示了如何在使用WebDAV的ASP中編輯文檔?
  答:從IIS上的腳本中使用WebDAV的最好方法就是使用ASP.Net的WebClient類。如果你正在使用Windows XP或Windows Server 2003,WebDAV功能就是這個(gè)操作系統(tǒng)的一部分。這就允許你在一個(gè)Web服務(wù)器上使用HTTP引用一個(gè)文件,就像使用一個(gè)UNC路徑名稱一樣。例如,你可以用NET USE * http://servername/directory來(lái)映射一個(gè)驅(qū)動(dòng)器,然后通過使用驅(qū)動(dòng)器符號(hào)來(lái)訪問這個(gè)位置。另一方面,你還可以創(chuàng)建一個(gè)COM對(duì)象,它是一個(gè)WebDAV的客戶端。你可以使用這個(gè)對(duì)象向IIS 5.x或IIS 6.0傳遞WebDAV動(dòng)詞。
  另外,如果你以WebDAV為關(guān)鍵詞搜索MSDN,你將會(huì)找到一些例子,它們教你如何使用XML來(lái)為Exchange和其它Microsoft服務(wù)器構(gòu)造WebDAV的查詢。在Microsoft Exchange 2000 Server SDK中有一個(gè)WebDAV的示例應(yīng)用程序。

  問:當(dāng)我試圖用ASP去訪問一個(gè)數(shù)據(jù)庫(kù)時(shí),我得到了一個(gè)'拒絕訪問'的回應(yīng),這是什么原因?
  答:有一個(gè)名為'Filemon'的優(yōu)秀免費(fèi)工具,你可以從Sysinternals.com上獲得它。你可以使用Filemon來(lái)快速診斷出絕大多數(shù)的權(quán)限問題,因?yàn)樗軐?shí)時(shí)顯示服務(wù)器上的全部文件權(quán)限、調(diào)用的過程名稱及訪問的結(jié)果。因此,無(wú)論隱藏多么深的嵌套包含或多么模糊的臨時(shí)索引,任何'拒絕訪問'的消息都能被輕松識(shí)別。
  當(dāng)一個(gè)在先前的操作系統(tǒng)上能夠正常工作的應(yīng)用程序在升級(jí)后出現(xiàn)問題時(shí),它就無(wú)能為力了。但是,這種類型的問題還是有啟發(fā)意義的。IIS 4.0和IIS 5.0之間的一個(gè)差異就與COM和COM+之間的一個(gè)差異有關(guān)系。在IIS 5.0中,當(dāng)一個(gè)COM+對(duì)象代表用戶訪問文件時(shí),它的默認(rèn)行為就是使用用戶的安全上下文環(huán)境來(lái)完成這些工作。這在IIS 4.0中并不算什么事情。因此,當(dāng)從IIS 4.0向IIS 5.0遷移包含COM的應(yīng)用程序時(shí),你可能需要向文件提供用戶權(quán)限,而在IIS 4.0中并不需要。雖然跟以前相比這有些不方便,但是它在提高應(yīng)用程序安全性設(shè)計(jì)方面的確是一個(gè)進(jìn)步。即使是不能使用定制的COM對(duì)象去訪問數(shù)據(jù)庫(kù),COM在本地的IIS組件中還是得到了廣泛的應(yīng)用。

  這里有一個(gè)能夠幫助您理解這種需求的例子,比如,你需要為正在創(chuàng)建數(shù)據(jù)庫(kù)的用戶授予請(qǐng)求使用Access臨時(shí)文件夾的權(quán)限。更多的信息請(qǐng)查閱Microsoft Knowledge Base中的Q210457和Q271071。

  問:如何在沒有恢復(fù)原始設(shè)置的情況下運(yùn)行IIS鎖定工具?
  答:IIS鎖定工具非常有效。這個(gè)工具允許你輕松、顯著地增加服務(wù)器的安全性。一旦運(yùn)行了這個(gè)工具,它就將其活動(dòng)的歷史記錄儲(chǔ)存到一個(gè)文件中,這個(gè)文件的位置是%systemdrive%\%systemdir%system32inetsrv。你將在下面的文件中找到這個(gè)信息:
  ·Oblt-rep.log
  ·Oblt-once.md0
  ·Oblt-mb.md0
  Oblt-undone.log也可能是最新的。

  如果你刪除了這些文件,向?qū)Ь蜁?huì)啟動(dòng),就好像IIS Lockdown tool并未被運(yùn)行一樣。重復(fù)這個(gè)過程并沒有什么風(fēng)險(xiǎn)。在你這么做之前,一定要制作一個(gè)Metabase.bin的副本。

  因?yàn)楫?dāng)它第一次運(yùn)行的時(shí)候,這個(gè)過程將會(huì)讓你運(yùn)行鎖定工具,就好像它從未被運(yùn)行過,但并不會(huì)'解開'或反轉(zhuǎn)鎖定工具進(jìn)行了一些設(shè)置,所以這個(gè)過程應(yīng)該可以正常工作。

  問:在我的intranet環(huán)境中,如何處理'server-side include'語(yǔ)法,而不必重新命名所有的文件?
  答:IIS 4.0和IIS 5.0提供了這樣一個(gè)選項(xiàng),它不需要你更改所有文件的擴(kuò)展名。ASP處理器也能處理服務(wù)器端的include語(yǔ)法,因此沒有必要使用.stm或者是.asp擴(kuò)展名。那么,這對(duì)你又有什么幫助呢?通過在應(yīng)用程序配置中創(chuàng)建一個(gè)條目,你可以將.htm 文件映射為由asp.dll處理,這樣,哪些帶有.htm擴(kuò)展名的文件就將由asp.dll來(lái)處理。通過使用這種方式,那些含有includes的.htm 文件不用重命名就能被處理,F(xiàn)在你可能在考慮:'這會(huì)不會(huì)導(dǎo)致我所有的.htm文件都像腳本一樣被處理,從而降低系統(tǒng)的性能呢?'事實(shí)上,在IIS 4.0中,這的確是一個(gè)問題;但是,在IIS 5.0中,性能問題并不像你想象中的那么大,并且在IIS 5.1中,甚至?xí)。IIS 5.0有一個(gè)特性叫做'Scriptless ASP'(無(wú)腳本ASP)用來(lái)處理這個(gè)特殊的問題。如果一個(gè)不包含腳本的文件被提交到ASP處理器,它就不會(huì)被解析,只是簡(jiǎn)單地作為靜態(tài)頁(yè)面發(fā)送出去--在這種特定的情況中是一個(gè)有用的特性。

  問: 當(dāng)我從一個(gè)客戶工作站進(jìn)行訪問時(shí),怎樣做才能在IIS 4.0(Windows NT 4.0 Service Pack 6a)中訪問IISADMIN虛擬目錄而不會(huì)導(dǎo)致服務(wù)器重新啟動(dòng)呢?
  答:因?yàn)镮IS 4.0是在Windows NT 4.0 Service Pack 6a(SP6a)之前發(fā)布的,所以一定要在安裝完IIS 4.0后重新安裝SP6a和所有必需的即時(shí)修補(bǔ)程序。

  問:在Windows 2000 Professional中,我怎樣做才能讓域用戶來(lái)管理虛擬目錄,以便域用戶能夠創(chuàng)建和管理他們自己的虛擬目錄?
  答:你需要做的最后事情就是將域用戶加入到Power Users組中,因?yàn)檫@樣就可以為域中任何一個(gè)擁有用戶帳號(hào)的人賦予經(jīng)過提升的權(quán)限。如果你信任域中的每一個(gè)成員都可以對(duì)系統(tǒng)進(jìn)行很好的管理,這樣做不會(huì)有什么問題,但是對(duì)于大多數(shù)計(jì)算機(jī)用戶來(lái)說,這樣的信任級(jí)別是不合適的。

  為了在IIS中創(chuàng)建一個(gè)虛擬目錄,用戶需要有管理員權(quán)限。之所以這樣設(shè)計(jì),是因?yàn)槿魏文茉赪eb站點(diǎn)上創(chuàng)建虛擬目錄的人也能對(duì)虛擬目錄進(jìn)行刪除、重命名、重定向或其它管理工作。

  認(rèn)識(shí)到這點(diǎn)后,你可能希望不為用戶提供管理員身份就能獲得類似的權(quán)力,在IIS插件中有一個(gè)特性('操作員'標(biāo)簽),能讓你指定一個(gè)Web站點(diǎn)操作員(不是管理員),為Web站點(diǎn)創(chuàng)建虛擬目錄。這個(gè)特性只有在Windows 2000 Server、Windows 2000 Advanced Server和Windows 2000 Datacenter Server中是可用的。相同的特性也可應(yīng)用于IIS 4.0。

  另外,你還可以在IIS Web站點(diǎn)內(nèi)部創(chuàng)建一個(gè)虛擬目錄,并將它映射到%systemroot%\%systemdir%inetsrviisadmin。你應(yīng)該保護(hù)這個(gè)虛擬目錄的安全,否則那些訪問這個(gè)站點(diǎn)的人就能夠管理這個(gè)Web站點(diǎn)。還要注意,這只有在Windows 2000 Server,Windows 2000 Advanced Server,和Windows 2000 Datacenter Server (以及IIS 4.0)上面是可行的。

  當(dāng)你發(fā)現(xiàn)你自己根據(jù)操作系統(tǒng)的限制將擴(kuò)展權(quán)限授予了其他人或別的工作組,并且試圖將你的工作站當(dāng)作服務(wù)器時(shí),你可能需要安裝一個(gè)服務(wù)器操作系統(tǒng)。

  問:在Windows 2000 Server上,當(dāng)一個(gè)站點(diǎn)需要SSL時(shí),我怎樣才能在相同的站點(diǎn)上使用主機(jī)頭?
  答:讓我們回顧一下SSL和主機(jī)頭的問題,因?yàn)閷?duì)IIS來(lái)說,它的問題一直在常見問題解答的頭五個(gè)中。
  當(dāng)客戶發(fā)出一個(gè)到IIS服務(wù)器的HTTP連接請(qǐng)求時(shí),這個(gè)客戶的請(qǐng)求包括一個(gè)叫做HOST:的字段,它包括了URL中的Web服務(wù)器請(qǐng)求。例如,如果你的請(qǐng)求將http://www.microsoft.com作為目的地,則瀏覽器將其發(fā)送到服務(wù)器,并一同提交HTTP頭中的其它信息,HOST: http://www.microsoft.com。因?yàn)榇俗侄蔚拿Q是'HOST',并且它在客戶的HTTP頭中,所以我們把它稱作'主機(jī)頭'。
  如果客戶請(qǐng)求建立一個(gè)SSL連接,主機(jī)頭字段仍然會(huì)包括在請(qǐng)求當(dāng)中,只不過它被包含在這個(gè)包的加密部分里(在應(yīng)用層中),因此Web服務(wù)器無(wú)法對(duì)其進(jìn)行解密,以確定應(yīng)該將請(qǐng)求發(fā)送到哪一個(gè)Web站點(diǎn)。
  這就產(chǎn)生了一條定律:當(dāng)使用SSL時(shí),不能使用主機(jī)頭來(lái)作為識(shí)別一個(gè)Web站點(diǎn)的主要手段。
  如果你確實(shí)想使用帶有主機(jī)頭的SSL,那么會(huì)發(fā)生什么情況呢?考慮一下這個(gè)情況。你有兩個(gè)Web站點(diǎn),其中一個(gè)不使用主機(jī)頭,另一個(gè)則使用。兩個(gè)站點(diǎn)都使用相同的IP地址,并且都配置成使用證書。當(dāng)你利用SSL訪問使用主機(jī)頭的站點(diǎn)時(shí),第一個(gè)Web站點(diǎn)會(huì)對(duì)此做出響應(yīng)。之所以發(fā)生這種情況是因?yàn)?我們使用IP地址來(lái)識(shí)別你希望用來(lái)建立連接的站點(diǎn),而不是主機(jī)頭。因?yàn)榈谝粋(gè)站點(diǎn)對(duì)IP地址和HTTPS有反應(yīng),所以它接受了請(qǐng)求。如果第一個(gè)Web站點(diǎn)需要主機(jī)頭,并且在不同的IP地址上,或者沒有證書,那么連接將會(huì)失敗。
  因此,請(qǐng)考慮你的配置,在你需要SSL的相同站點(diǎn)上,只要不使用主機(jī)頭,你就可以做任何想做的事情。
  IIS問題專家Brett Hill提供了這些答案。你可以將問題提交給不同的IIS新聞組或提交給IIS Insider;被選定的問題連同答案將會(huì)被放進(jìn)以后的IIS Insider專欄和TechNet中,并且將其匯總到到以后的FAQ中。


Copyright© 2004-2020 河南海騰電子技術(shù)有限公司 版權(quán)所有   經(jīng)營(yíng)性ICP/ISP證 備案號(hào):B1-20180452   豫公網(wǎng)安備 41019702002018號(hào)    電子營(yíng)業(yè)執(zhí)照