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

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

(0)

相关推荐

  • ASP.NET对IIS中的虚拟目录进行操作的代码

    复制代码 代码如下: //假如虚拟目录名为"Webtest",先在项目中引用 //System.DirectoryServices.dll,再 using System.DirectoryServices; protected System.DirectoryServices.DirectoryEntry dirroot; 1.添加新的虚拟目录 复制代码 代码如下: DirectoryEntry newVirDir = dirroot.Children.Add("Webtes

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

    但是这些文章只介绍如何来创建.删除一个虚拟目录,却没有介绍如何修改一个虚拟目录的Asp.Net版本.如果机子上装有两个版本以.Net FrameWork,在创建时将使用IIS中默认使用的版本,而默认的版本又不是你需要的,那怎么办?在部署后手动修改?还是在部署时直接使用程序修改呢?  本文将介绍一个方法用于修改虚拟目录的Asp.Net版本. ASP.NET IIS 注册工具 使用ASP.NET IIS 注册工具 (Aspnet_regiis.exe)可以方便地更新 ASP.NET 应用程序的脚本映

  • Sql server 2005安装时ASP.Net版本注册要求警告的解决方法

    在安装SQL Server 2005 时出现ASP.Net版本注册要求(警告),提示找不到ASP.Net 在 Microsoft Internet 信息服务(IIS)中的版本注册信息. 首先在确认安装了IIS,并且安装了IIS的ASP.Net组件,位置在[Internet 信息服务]--[万维网服务]--[应用程序开发 在安装SQL Server 2005 时出现ASP.Net版本注册要求(警告),提示找不到ASP.Net 在 Microsoft Internet 信息服务(IIS)中的版本注册

  • 在IIS上部署ASP.NET Core Web API的方法步骤

    对于本文,我想与您分享有关如何在IIS上部署ASP.NET Core Web API的指南.我将指导您安装Visual Studio 2019,.NET Core Runtime 3.0.我还确保我逐步引导您在服务器(Web IIS)中启用它,使用no受管代码选项创建新的应用程序池,创建ASP.NET Core Web API项目以及发布ASP.NET Core Web API. 了解并遵循正确的步骤来准备开发和部署环境后,在IIS上部署ASP.NET Core Web API就是一件容易的事.

  • 在IIS中改变ASP.NET程序版本的实现方法附批处理代码

    在windows2003的iis6.0当中,在装过.NETFRAMEWORK1.1,和.NETFRAMEWORK2.0之后,在新建的ASP.NET应用程序中,查看属性,会出现ASP.NET的选项卡,在此可以更改该WEB应用程序是基于哪个框架运行的. 但是最近在装了64位的WINDOWSXP PROFESSIONAL后,找不到此选项卡了,只能通过如下方式修改: 在IIS管理器中,选择指定的WEB应用程序,右键-->属性-->configuration-->mapping-->根据需要

  • asp.net无法获取iis目录的问题解决方法

    如果你有一个需要偶尔发送邮件的Asp.Net的网站,可能会有代码长的和下面的很像: 复制代码 代码如下: //这是简写,并非实际项目代码public void Send(string from, string to, string subject, string body){    var msgMail = new MailMessage(from, to, subject, body);    msgMail.IsBodyHtml = true;    var server = new Sm

  • iis、apache与nginx禁止目录执行asp、php脚本的实现方法

    一般iis中比较简单,iis6如下图所示即可: 很多购买虚拟主机空间的用户,如果空间商提供了在线管理程序,也可以实现.具体的看下帮助即可. 需要知道目录名称,设置即可. iis7+禁止执行php等 IIS7也类似于IIS6.0,选择站点对应的目录,data.uploads及静态html文件目录,双击功能试图面板中的"处理程序映射"(如图2) 在"编辑功能权限--"中,我们直接去除脚本的执行权限即可.(如图3) apache中一般是通过.htaccess文件来限制 A

  • 在IIS上部署ASP.NET Core项目的图文方法

    概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等).而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,

  • IIS无法运行asp的NTFS权限设置图文教程

    因为现在在家里有点空,下面就详细写一下在Windows XP简体专业版下设置IIS的权限(如果网站所在的分区不是NTFS文件系统就不用设置权限,在分区的属性里可以查看是什么文件系统),对于Windows 2000/2003同样适用.以C:\wwwroot文件夹演示. 右键点击wwwroot目录,选择"属性",可能会出现下图所示情况,没有"安全"标签. 如果没有"安全"标签,请先进行"文件夹选项"设置,如果有了则跳过.1.&qu

  • Windows 2003 IIS 不支持ASP问题的解决方法

    特别注意:当我们在没有配置好iis的时候,不要安装补丁了,组件之类的东西,先把网站弄开通了,再安装补丁,尤其是.net组件. HTTP 错误 404 - 文件或目录未找到. Internet 信息服务 (IIS) 第一步,启用Asp,进入:控制面板 -> 管理工具 ->IIS(Internet 服务器)- Web服务扩展 -> Active Server Pages -> 允许 控制面板 -> 管理工具 ->IIS(Internet 服务器)- Web服务扩展 ->

  • IIS服务器中 ASP.NET State Service 开启后 Session 仍容易丢失的问题终极解决办法

    解决方法一: 1. 开启ASP.NET State Service服务: 选择管理工具->服务,找到ASP.NET State Service,点开后选择启动,并将启动类型设为自动. 2. 设置程序配置文件: 将web.config打开,会看到有一行是<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" timeout="20"/>,如

随机推荐