用程序修改IIS目录的Asp.Net版本

快乐总和宽厚的人相伴,财富总与诚信的人相伴,智慧总与高尚的人相伴,魅力总与幽默的人相伴,健康总与豁达的人相伴。

但是这些文章只介绍如何来创建、删除一个虚拟目录,却没有介绍如何修改一个虚拟目录的Asp.Net版本.如果机子上装有两个版本以.NetFrameWork,在创建时将使用IIS中默认使用的版本,而默认的版本又不是你需要的,那怎么办?在部署后手动修改?还是在部署时直接使用程序修改呢? 本文将介绍一个方法用于修改虚拟目录的Asp.Net版本. ASP.NETIIS注册工具 使用ASP.NETIIS注册工具(Aspnet_regiis.exe)可以方便地更新ASP.NET应用程序的脚本映射,使其指向与该工具关联的ASP.NETISAPI版本. 关于ASP.NETIIS注册工具的更详细的内容,请参考MSDN. 在控制台上我们使用下面的命令可以修改一个虚拟目录的Asp.Net版本: Aspnet_iis.exe–spath 我们知道了如何来修改一个虚拟目录的版本,现在的问题就是如何使用程序来实现它了. 以下代码基于.NetFrameWork2.0在WindowsXpsp2中编译通过:

//创建一个虚拟目录 DirectoryEntrydirRoot=newDirectoryEntry("IIS://localhost/W3SVC/1/Root"); DirectoryEntriesdirs=dirRoot.Children; DirectoryEntryvirtualDir=dirs.Add("VirtualChange",dirRoot.SchemaClassName); object[]objs=newobject[]{true}; virtualDir.Invoke("AppCreate",objs); virtualDir.Properties["AppFriendlyName"][0]="VirtualChange"; virtualDir.Properties["Path"].Value="C:\\VirtualChange"; virtualDir.CommitChanges(); //启动aspnet_iis.exe程序 stringfileName=Environment.GetEnvironmentVariable("windir")+@"\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe"; ProcessStartInfostartInfo=newProcessStartInfo(fileName); //处理目录路径 stringpath=virtualDir.Path.ToUpper(); intindex=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; Processprocess=newProcess(); process.StartInfo=startInfo; process.Start(); process.WaitForExit(); stringerrors=process.StandardError.ReadToEnd(); if(errors!=string.Empty) thrownewException(errors); Console.WriteLine(process.StandardOutput.ReadToEnd());

本文用程序修改IIS目录的Asp.Net版本到此结束。我的青春还在继续,再多荆棘也要向前奔跑。小编再次感谢大家对我们的支持!

标签: IIS Asp