用程序修改IIS目录的Asp.Net版本
用程序修改IIS目录的Asp.Net版本
发布时间:2016-12-29 来源:查字典编辑
摘要:但是这些文章只介绍如何来创建、删除一个虚拟目录,却没有介绍如何修改一个虚拟目录的Asp.Net版本.如果机子上装有两个版本以.NetFram...

但是这些文章只介绍如何来创建、删除一个虚拟目录,却没有介绍如何修改一个虚拟目录的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.NETFrameworkv1.1.4322aspnet_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());

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类