修改IIS目录的Asp.Net版本

asp.net|iis

目前已经有很多介绍创建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());

 

时间: 2024-10-26 13:09:26

修改IIS目录的Asp.Net版本的相关文章

用程序修改IIS目录的Asp.Net版本_实用技巧

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

MS IIS虚拟主机ASP源码泄露(MS,缺陷)-ASP漏洞集

iis|虚拟主机    涉及程序:   MS Windows NT/IIS   描述:   共享目录导致ASP程序源码泄露   详细:   如果一个虚拟主机的根目录是映射到一网络共享目录,通过在ASP或者HTR扩展名后增加某些特殊字符,IIS服务器将反送出这个asp   或者htr文件的全部源代码.如果IIS的文件安装在本地驱动器上,就没有该泄漏源码这个问题.   在虚拟目录文件中的asp文件后增加一个符号"\",IIS就会泄漏该asp文件源代码.   例如,如果虚拟目录/asp/映射

MS IIS虚拟主机ASP源码泄露 (MS,缺陷)

iis|虚拟主机 涉及程序: MS windows NT/IIS 描述: 共享目录导致ASP程序源码泄露 详细: 如果一个虚拟主机的根目录是映射到一网络共享目录,通过在ASP或者HTR扩展名后增加某些特殊字符,IIS服务器将反送出这个asp或者htr文件的全部源代码.如果IIS的文件安装在本地驱动器上,就没有该泄漏源码这个问题. 在虚拟目录文件中的asp文件后增加一个符号"\",IIS就会泄漏该asp文件源代码.例如,如果虚拟目录/asp/映射到共享文件夹的\\server1\shar

用VBS修改IIS Metabase

//////////////////////////作者:Jaron, 江都资讯网 邮件:jaron@jdinfo.net网址:http://www.jiangdu.net如果您要转载该文章,请注明出处.////////////////////////// 本文解释如何用 Microsoft 自带的adsutil.vbs 来修改 IIS Metabase 的设置方法,这里是通过调用 BAT批处理的方法来实现的,灵活运用一下,可以用于 InstallShield 和其他地方.测试环境:Window

C# 修改IIS默认网站主目录,及其它属性

问题描述 如题...C#修改IIS默认网站主目录及asp.net版本及其它属性 解决方案 解决方案二:没人会吗?解决方案三:先用你的c#程序格式化宿主操作系统,然后用它再安装IIS.解决方案四:我是要用C#代码去改IIS默认网站的主目录,不是要重装IIS解决方案五:自己搞定了DirectoryEntrydirectoryEntry=newDirectoryEntry(@"IIS://localhost/W3SVC/1/root");if(directoryEntry.SchemaCla

用VBS修改IIS Metabase 的代码_vbs

////////////////////////// 作者:Jaron, 江都资讯网  邮件:jaron@jdinfo.net 网址:http://www.jiangdu.net 如果您要转载该文章,请注明出处. //////////////////////////  本文解释如何用 Microsoft 自带的adsutil.vbs 来修改 IIS Metabase 的设置方法,这里是通过调用 BAT批处理的方法来实现的,灵活运用一下,可以用于 InstallShield 和其他地方.  测试环

用VBS修改IIS Metabase的代码_vbs

////////////////////////// 作者:Jaron, 江都资讯网  邮件:jaron@jdinfo.net 网址:http://www.jiangdu.net 如果您要转载该文章,请注明出处. //////////////////////////  本文解释如何用 Microsoft 自带的adsutil.vbs 来修改 IIS Metabase 的设置方法,这里是通过调用 BAT批处理的方法来实现的,灵活运用一下,可以用于 InstallShield 和其他地方.  测试环

Linux系统iis无法正常运行asp文件怎么解决

 Linux系统iis无法正常运行asp文件怎么解决   解决方法: microsoft windows xp [版本 5.1.2600] (c) 版权所有 1985-2001 microsoft corp. c:documents and settingsadministrator>cd %windir%system32inetsrv c:windowssystem32inetsrv>rundll32 wamreg.dll,createiispackage c:windowssystem32

在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)

原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改了配置文件web.config后,会导致应用程序重启,所有 会话(session)丢失.然而,应用程序的配置信息放在配置文件里是最佳选择,在后台修改了配置后导致所有会话丢失是非常不爽的事情,这个时候可将配 置文件中经常需要改变的参数配置节 放到外面来,例如appSetting节. 一.原来的web.