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

 更新时间:2007年04月13日 00:00:00   作者:  
目前已经有很多介绍创建IIS虚拟目录的文章了,我个人也翻译过一篇
但是这些文章只介绍如何来创建、删除一个虚拟目录,却没有介绍如何修改一个虚拟目录的Asp.Net版本.如果机子上装有两个版本以.Net FrameWork,在创建时将使用IIS中默认使用的版本,而默认的版本又不是你需要的,那怎么办?在部署后手动修改?还是在部署时直接使用程序修改呢? 
本文将介绍一个方法用于修改虚拟目录的Asp.Net版本. 

ASP.NET IIS 注册工具 

使用ASP.NET IIS 注册工具 (Aspnet_regiis.exe)可以方便地更新 ASP.NET 应用程序的脚本映射,使其指向与该工具关联的 ASP.NET ISAPI 版本. 
关于ASP.NET IIS 注册工具的更详细的内容,请参考MSDN. 
在控制台上我们使用下面的命令可以修改一个虚拟目录的Asp.Net版本: 

Aspnet_iis.exe –s path 

我们知道了如何来修改一个虚拟目录的版本,现在的问题就是如何使用程序来实现它了. 

以下代码基于.Net FrameWork 2.0 在Windows Xp sp2中编译通过: 

复制代码 代码如下:

//创建一个虚拟目录  
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利用Ajax和Jquery在前台向后台传参数并返回值的实例

    asp.net利用Ajax和Jquery在前台向后台传参数并返回值的实例

    asp.net利用Ajax和Jquery在前台向后台传参数并返回值的实例,需要的朋友可以参考一下
    2013-05-05
  • ASP.NET实现大文件上传功能

    ASP.NET实现大文件上传功能

    这篇文章主要为大家详细介绍了ASP.NET实现大文件上传功能,解决了 ASP.NET 中的大文件上传问题,感兴趣的朋友可以参考一下
    2016-07-07
  • .NET 8 强大功能 IHostedService 与 BackgroundService 实战教程

    .NET 8 强大功能 IHostedService 与 Backgr

    .NET 8 中的 IHostedService 和 BackgroundService 提供了强大的工具集,使定时任务、后台处理以及定期维护等功能的实现变得更加直接、高效和灵活,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • 获取DataRow[]的值示例

    获取DataRow[]的值示例

    这篇文章主要介绍了如何获取DataRow[]的值,需要的朋友可以参考下
    2014-04-04
  • asp.net实现调用存储过程并带返回值的方法

    asp.net实现调用存储过程并带返回值的方法

    这篇文章主要介绍了asp.net实现调用存储过程并带返回值的方法,结合实例形式较为详细的分析了asp.net存储过程调用的相关技巧,需要的朋友可以参考下
    2016-03-03
  • Coolite Cool Study 3 MVC + Coolite 的实现代码

    Coolite Cool Study 3 MVC + Coolite 的实现代码

    啊,开始以为MVC+Coolite结合的例子没什么难度,但原来Coolite在MVC中需要特定设置一下某些属性才行,费了两个小时才算大功告成,具体请看下文。还是先把这个例子的效果贴上来再说。
    2009-05-05
  • ajaxToolkit:ModalPopupExtender演示及实现代码

    ajaxToolkit:ModalPopupExtender演示及实现代码

    ajaxToolkit:ModalPopupExtender可以让用户模拟新开一个窗口,就是在模拟新开窗口作多项选项的功能,感兴趣的朋友可以了解下,希望此文对你有所帮助
    2013-01-01
  • .net core 3.1 Redis安装和简单使用

    .net core 3.1 Redis安装和简单使用

    本文主要介绍了.net core 3.1 Redis安装和简单使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • ASP.NET 谨用 async/await

    ASP.NET 谨用 async/await

    这篇文章主要介绍了ASP.NET 应用程序实际使用过程中的一些总结, 包括 异常捕获 、 死锁 、 应用程序崩溃 ,实际使用过程中一不注意就可能掉坑里了
    2018-01-01
  • ASP.NET core Web中使用appsettings.json配置文件的方法

    ASP.NET core Web中使用appsettings.json配置文件的方法

    这篇文章主要给大家介绍了在ASP.NET core Web中使用appsettings.json配置文件的方法,文中给出了详细的示例代码,需要的朋友可以参考学习,下面来一起看看吧。
    2017-04-04

最新评论