前一段時間需要寫乙個小工具用於建立虛擬目錄和設定登錄檔項,現在總結一下。有兩種方式操作iis:system.directoryservices空間下面的類,用於iis5/6版本,和可以相容iis6的iis7版本;microsoft.web.administration空間下面的類,iis7引入的新的管理類。
1.使用system.directoryservices操作iis.
《1》建立新站點
?
string
endpath =
"iis://localhost/w3svc"
; //注意字串的最後沒有/,否則將彈出異常
directoryentry dentry=new
directoryentry(endpath);
//建立乙個站點
int
index = 0;
foreach
(directoryentry item
in
dentry.children)
if (int.parse(item.name) > index) //directoryentry(iiswebserver0的name屬性表示的是乙個int,iis預設從1開始}}
index++;
directoryentry newwebsite = null;
newwebsite = dentry.children.add(index.tostring(), "iiswebserver"); //注意第二個引數
newwebsite.properties["servercomment"][0] = "testcreate"; //設定站點名稱
newwebsite.properties["serverbindings"].add("192.168.0.1:8080:");//設定站點的位址及埠號
?
newwebsite.invoke(
"put"
,
"serverstate"
,2);
//設定**已啟動狀態
newwebsite.commitchanges();
這個過程稱為繫結,建構函式中的路徑有一定的格式:
?
iis:
//伺服器名/操作的服務目錄/站點標示/目錄名稱 --用於特定應用下目錄
?
iis:
//伺服器名/操作的服務目錄 --得到iis目錄服務
iis服務用於管理站點,提供了adsi(活動目錄服務介面)。類似的還有ldap服務,iis服務和winnt等等。
伺服器名可以是固定的ip,也可以是計算機名。這裡使用的是本地(localhost)。
w3svc表示操作的是web目錄。
通過這一步,我們建立了iis服務物件s
《2》為新站點建立主目錄,每乙個站點都要有乙個主目錄。
?
《3》為新站點建立應用程式
?
foreach
(directoryentry item
in
root.children)
}
,
"iiswebvirtualdir"
);
//注意第二個引數iiswebvirtualdir.
下面主要解釋一下config配置資訊**:
system.webserver/directorybrowse
";//
configurationsection dbs = config.getsection(path, "
");dbs.attributes["
enabled
"].value = true;
根據上圖中的system.webserver節點的結構關係,可以得到需要修改的屬性路徑:path="
乙個別忘了呼叫servermanager.commitchanges()方法儲存修改,這些修改將儲存到web.config檔案中。它也是在檔案中新增了一段xml片段,如下:
以上是自己學習時的過程,也可能有不對的地方。附上幾篇參考的文章:
**:
筆記 操作IIS
前一段時間需要寫乙個小工具用於建立虛擬目錄和設定登錄檔項,現在總結一下。有兩種方式操作iis system.directoryservices空間下面的類,用於iis5 6版本,和可以相容iis6的iis7版本 microsoft.web.administration空間下面的類,iis7引入的新的...
IIS學習筆記
iis 將 開發 傳輸到伺服器上,就是為了 的發布 我是使用的雲伺服器,windows sever 2012 選擇 基於角色和功能的安裝 預設ip,直接選擇下一步 然後選擇 web 伺服器 iis 我這個是已經安裝過的 直接點選下一步,直到左側出現 角色服務 時候,在預設情況下,在應用程式服務下 多...
IIS 學習筆記
1.問題 在iis上發布一ujvmzrflh個站點,在本地可以訪問,在別的機器不能訪問。對策 確認iis所在機器的防火牆是否關閉,如果沒有,關閉防火牆試試。當然最好的辦法是修改防火牆的配置,不是讓程式設計客棧它全部不起作用。2.問題 在ujvmzrflhiis上發布了乙個站點,靜態頁可以訪問,但是連...