用程序修改IIS目錄的Asp.Net版本
更新時(shí)間:2007年04月13日 00:00:00 作者:
目前已經(jīng)有很多介紹創(chuàng)建IIS虛擬目錄的文章了,我個(gè)人也翻譯過(guò)一篇
但是這些文章只介紹如何來(lái)創(chuàng)建、刪除一個(gè)虛擬目錄,卻沒(méi)有介紹如何修改一個(gè)虛擬目錄的Asp.Net版本.如果機(jī)子上裝有兩個(gè)版本以.Net FrameWork,在創(chuàng)建時(shí)將使用IIS中默認(rèn)使用的版本,而默認(rèn)的版本又不是你需要的,那怎么辦?在部署后手動(dòng)修改?還是在部署時(shí)直接使用程序修改呢?
本文將介紹一個(gè)方法用于修改虛擬目錄的Asp.Net版本.
ASP.NET IIS 注冊(cè)工具
使用ASP.NET IIS 注冊(cè)工具 (Aspnet_regiis.exe)可以方便地更新 ASP.NET 應(yīng)用程序的腳本映射,使其指向與該工具關(guān)聯(lián)的 ASP.NET ISAPI 版本.
關(guān)于ASP.NET IIS 注冊(cè)工具的更詳細(xì)的內(nèi)容,請(qǐng)參考MSDN.
在控制臺(tái)上我們使用下面的命令可以修改一個(gè)虛擬目錄的Asp.Net版本:
Aspnet_iis.exe –s path
我們知道了如何來(lái)修改一個(gè)虛擬目錄的版本,現(xiàn)在的問(wèn)題就是如何使用程序來(lái)實(shí)現(xiàn)它了.
以下代碼基于.Net FrameWork 2.0 在Windows Xp sp2中編譯通過(guò):
//創(chuàng)建一個(gè)虛擬目錄
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();
//啟動(dòng)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);
//啟動(dòng)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());
本文將介紹一個(gè)方法用于修改虛擬目錄的Asp.Net版本.
ASP.NET IIS 注冊(cè)工具
使用ASP.NET IIS 注冊(cè)工具 (Aspnet_regiis.exe)可以方便地更新 ASP.NET 應(yīng)用程序的腳本映射,使其指向與該工具關(guān)聯(lián)的 ASP.NET ISAPI 版本.
關(guān)于ASP.NET IIS 注冊(cè)工具的更詳細(xì)的內(nèi)容,請(qǐng)參考MSDN.
在控制臺(tái)上我們使用下面的命令可以修改一個(gè)虛擬目錄的Asp.Net版本:
Aspnet_iis.exe –s path
我們知道了如何來(lái)修改一個(gè)虛擬目錄的版本,現(xiàn)在的問(wèn)題就是如何使用程序來(lái)實(shí)現(xiàn)它了.
以下代碼基于.Net FrameWork 2.0 在Windows Xp sp2中編譯通過(guò):
復(fù)制代碼 代碼如下:
//創(chuàng)建一個(gè)虛擬目錄
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();
//啟動(dòng)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);
//啟動(dòng)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利用Ajax和Jquery在前臺(tái)向后臺(tái)傳參數(shù)并返回值的實(shí)例
asp.net利用Ajax和Jquery在前臺(tái)向后臺(tái)傳參數(shù)并返回值的實(shí)例,需要的朋友可以參考一下2013-05-05
.NET 8 強(qiáng)大功能 IHostedService 與 Backgr
.NET 8 中的 IHostedService 和 BackgroundService 提供了強(qiáng)大的工具集,使定時(shí)任務(wù)、后臺(tái)處理以及定期維護(hù)等功能的實(shí)現(xiàn)變得更加直接、高效和靈活,感興趣的朋友跟隨小編一起看看吧2024-11-11
asp.net實(shí)現(xiàn)調(diào)用存儲(chǔ)過(guò)程并帶返回值的方法
這篇文章主要介紹了asp.net實(shí)現(xiàn)調(diào)用存儲(chǔ)過(guò)程并帶返回值的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了asp.net存儲(chǔ)過(guò)程調(diào)用的相關(guān)技巧,需要的朋友可以參考下2016-03-03
Coolite Cool Study 3 MVC + Coolite 的實(shí)現(xiàn)代碼
啊,開(kāi)始以為MVC+Coolite結(jié)合的例子沒(méi)什么難度,但原來(lái)Coolite在MVC中需要特定設(shè)置一下某些屬性才行,費(fèi)了兩個(gè)小時(shí)才算大功告成,具體請(qǐng)看下文。還是先把這個(gè)例子的效果貼上來(lái)再說(shuō)。2009-05-05
ajaxToolkit:ModalPopupExtender演示及實(shí)現(xiàn)代碼
ajaxToolkit:ModalPopupExtender可以讓用戶模擬新開(kāi)一個(gè)窗口,就是在模擬新開(kāi)窗口作多項(xiàng)選項(xiàng)的功能,感興趣的朋友可以了解下,希望此文對(duì)你有所幫助2013-01-01
.net core 3.1 Redis安裝和簡(jiǎn)單使用
本文主要介紹了.net core 3.1 Redis安裝和簡(jiǎn)單使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
ASP.NET core Web中使用appsettings.json配置文件的方法
這篇文章主要給大家介紹了在ASP.NET core Web中使用appsettings.json配置文件的方法,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。2017-04-04

