用程序修改IIS目錄的Asp.Net版本
更新時間:2007年04月13日 00:00:00 作者:
目前已經(jīng)有很多介紹創(chuàng)建IIS虛擬目錄的文章了,我個人也翻譯過一篇
但是這些文章只介紹如何來創(chuàng)建、刪除一個虛擬目錄,卻沒有介紹如何修改一個虛擬目錄的Asp.Net版本.如果機子上裝有兩個版本以.Net FrameWork,在創(chuàng)建時將使用IIS中默認使用的版本,而默認的版本又不是你需要的,那怎么辦?在部署后手動修改?還是在部署時直接使用程序修改呢?
本文將介紹一個方法用于修改虛擬目錄的Asp.Net版本.
ASP.NET IIS 注冊工具
使用ASP.NET IIS 注冊工具 (Aspnet_regiis.exe)可以方便地更新 ASP.NET 應(yīng)用程序的腳本映射,使其指向與該工具關(guān)聯(lián)的 ASP.NET ISAPI 版本.
關(guān)于ASP.NET IIS 注冊工具的更詳細的內(nèi)容,請參考MSDN.
在控制臺上我們使用下面的命令可以修改一個虛擬目錄的Asp.Net版本:
Aspnet_iis.exe –s path
我們知道了如何來修改一個虛擬目錄的版本,現(xiàn)在的問題就是如何使用程序來實現(xiàn)它了.
以下代碼基于.Net FrameWork 2.0 在Windows Xp sp2中編譯通過:
//創(chuàng)建一個虛擬目錄
DirectoryEntry dirRoot = new DirectoryEntry("IIS://localhost/W3SVC/1/Root");
DirectoryEntries dirs = dirRoot.Children;
DirectoryEntry virtualDir = dirs.Add("VirtualChange", dirRoot.SchemaClassName);
object[] objs = new object[] { true };
virtualDir.Invoke("AppCreate", objs);
virtualDir.Properties["AppFriendlyName"][0] = "VirtualChange";
virtualDir.Properties["Path"].Value = "C:\\VirtualChange";
virtualDir.CommitChanges();
//啟動aspnet_iis.exe程序
string fileName = Environment.GetEnvironmentVariable("windir") + @"\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe";
ProcessStartInfo startInfo = new ProcessStartInfo(fileName);
//處理目錄路徑
string path = virtualDir.Path.ToUpper();
int index = path.IndexOf("W3SVC");
path = path.Remove(0, index);
//啟動aspnet_iis.exe程序,刷新教本映射
startInfo.Arguments = "-s " + path;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
string errors = process.StandardError.ReadToEnd();
if (errors != string.Empty)
throw new Exception(errors);
Console.WriteLine(process.StandardOutput.ReadToEnd());
本文將介紹一個方法用于修改虛擬目錄的Asp.Net版本.
ASP.NET IIS 注冊工具
使用ASP.NET IIS 注冊工具 (Aspnet_regiis.exe)可以方便地更新 ASP.NET 應(yīng)用程序的腳本映射,使其指向與該工具關(guān)聯(lián)的 ASP.NET ISAPI 版本.
關(guān)于ASP.NET IIS 注冊工具的更詳細的內(nèi)容,請參考MSDN.
在控制臺上我們使用下面的命令可以修改一個虛擬目錄的Asp.Net版本:
Aspnet_iis.exe –s path
我們知道了如何來修改一個虛擬目錄的版本,現(xiàn)在的問題就是如何使用程序來實現(xiàn)它了.
以下代碼基于.Net FrameWork 2.0 在Windows Xp sp2中編譯通過:
復(fù)制代碼 代碼如下:
//創(chuàng)建一個虛擬目錄
DirectoryEntry dirRoot = new DirectoryEntry("IIS://localhost/W3SVC/1/Root");
DirectoryEntries dirs = dirRoot.Children;
DirectoryEntry virtualDir = dirs.Add("VirtualChange", dirRoot.SchemaClassName);
object[] objs = new object[] { true };
virtualDir.Invoke("AppCreate", objs);
virtualDir.Properties["AppFriendlyName"][0] = "VirtualChange";
virtualDir.Properties["Path"].Value = "C:\\VirtualChange";
virtualDir.CommitChanges();
//啟動aspnet_iis.exe程序
string fileName = Environment.GetEnvironmentVariable("windir") + @"\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe";
ProcessStartInfo startInfo = new ProcessStartInfo(fileName);
//處理目錄路徑
string path = virtualDir.Path.ToUpper();
int index = path.IndexOf("W3SVC");
path = path.Remove(0, index);
//啟動aspnet_iis.exe程序,刷新教本映射
startInfo.Arguments = "-s " + path;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
string errors = process.StandardError.ReadToEnd();
if (errors != string.Empty)
throw new Exception(errors);
Console.WriteLine(process.StandardOutput.ReadToEnd());
您可能感興趣的文章:
相關(guān)文章
ASP.net中網(wǎng)站訪問量統(tǒng)計方法代碼
這篇文章介紹了ASP.net中網(wǎng)站訪問量統(tǒng)計方法代碼,有需要的朋友可以參考一下2013-11-11ASP.NET 5中使用AzureAD實現(xiàn)單點登錄
本文給大家介紹的是在ASP.NET 5中使用AzureAD實現(xiàn)單點登錄的方法和示例,有需要的小伙伴可以參考下。2015-07-07Asp.Net二級域名共享Forms身份驗證、下載站/圖片站的授權(quán)訪問控制
我們平時一般在做圖片或者文件下載權(quán)限控制的時候基本都是控制到下載頁面的,當(dāng)你的下載地址暴露后,瀏覽者就直接可以通過文件地址進行下載了,這時候也就出現(xiàn)了我們常說的盜鏈2012-02-02ASP.NET MVC @Helper輔助方法和@functons自定義函數(shù)的使用方法
本文主要介紹ASP.NET MVC中使用@Helper和@functons自定義一些代碼片段,方便視圖調(diào)用,從而達到減少重復(fù)代碼,快速開發(fā)的目的,希望對大家有所幫助。2016-04-04ASP.NET連接MySql數(shù)據(jù)庫的2個方法及示例
這篇文章主要介紹了ASP.NET連接MySql數(shù)據(jù)庫的2個方法及示例,使用的是MySQL官方組件和ODBC.NET,需要的朋友可以參考下2014-03-03在?.NET?中使用?FixedTimeEquals?應(yīng)對計時攻擊的例子
在計算機安全中,計時攻擊(Timing attack)是旁道攻擊 (Side-channel attack) 的一種,而旁道攻擊是根據(jù)計算機處理過程發(fā)出的信息進行分析,這篇文章主要介紹了在?.NET?中使用?FixedTimeEquals?應(yīng)對計時攻擊,需要的朋友可以參考下2022-06-06.Net Core在程序的任意位置使用和注入服務(wù)的方法
這篇文章主要介紹了.Net Core在程序的任意位置使用和注入服務(wù)的方法,很多朋友對此問題都不是很清楚,于是寫這篇文章幫助大家學(xué)習(xí),需要的朋友可以參考下2018-10-10