用程序修改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());

时间: 2024-08-01 00:25:04

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

google suggest 下拉菜单实现代码(asp.net版本)_实用技巧

1.suggest.js 复制代码保存为suggest.js在你需要的页面引用就行了 复制代码 代码如下: //建立跨浏览器的xmlHttp对象引用 var xmlHttp; var k=-1; try { xmlHttp=new XMLHttpRequest(); } catch(e) { var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLH

修改IIS目录的Asp.Net版本

asp.net|iis 目前已经有很多介绍创建IIS虚拟目录的文章了,我个人也翻译过一篇. 但是这些文章只介绍如何来创建.删除一个虚拟目录,却没有介绍如何修改一个虚拟目录的Asp.Net版本.如果机子上装有两个版本以.Net FrameWork,在创建时将使用IIS中默认使用的版本,而默认的版本又不是你需要的,那怎么办?在部署后手动修改?还是在部署时直接使用程序修改呢? 本文将介绍一个方法用于修改虚拟目录的Asp.Net版本. ASP.NET IIS 注册工具 使用ASP.NET IIS 注册工

先装VS再装IIS时出错的解决方法_实用技巧

原来在安装 Microsoft .NET Framework 软件开发工具包 (SDK) 或 Visual Studio .NET 之后,会创建 Internet 信息服务 (IIS) 映射,以便为 ASP.NET 的新文件扩展名及设置建立关联.如果在运行 SDK 或 Visual Studio 安装程序时没有安装 IIS,或是在运行 SDK 或 Visual Studio 安装程序之后卸载并重新安装了 IIS,那么这些设置将不正确.试图查看 ASP.NET 页时会遇到意外现象. 其中就包括,V

ASP.NET对IIS中的虚拟目录进行操作的代码_实用技巧

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

asp.net 删除项目文件/文件夹IIS重启,Session丢失问题_实用技巧

仔细一看,SSO返回的ticket也不相同,才发现原来IIS重启了,最后解决方案如下: 新建一个类继承IHttpModule 复制代码 代码如下: /// <summary> /// Stops the ASP.NET AppDomain being restarted (which clears /// Session state, Cache etc.) whenever a folder is deleted. /// </summary> public class Stop

解决 ASP.NET中目录访问权限的问题_实用技巧

症状:从 ASP.NET 应用程序,访问远程增强安全性的资源时可能会收到以下错误信息 登录失败:未知用户名或错误密码. 解决办法:      1   在 Web 服务器上修改 ASPNET 帐户的密码为 password .      2   在远程文件服务器上,修改 ASPNET 帐户(如果没有该帐户则创建之)的密码为 password .      3   在远程文件服务器上,为 ASPNET 帐户设置相应目录的访问权限.      4   修改 Web.config 文件,在 <syste

asp.net 文件路径之获得虚拟目录的网站的根目录_实用技巧

string Server.MapPath(string path) 返回与Web服务器上的指定虚拟路径相对应的物理文件路径. Server.MapPath(Request.ServerVariables["PATH_INFO"]) Server.MapPath("/") Server.MapPath("") Server.MapPath(".") Server.MapPath("../") Server.

asp.net 基于forms验证的目录角色权限的实现_实用技巧

但是我在使用过程中,发现针对角色的控制并不是那么容易,通过在网上查找资料,终于解决这个问题.下面将主要的注意事项列出来.1.配置文件中,角色的allow项要放在deny项的前面,users要配置为*,而不是? 代码 复制代码 代码如下: <location path="Doctors"> <system.web> <authorization> <allow roles="doctors"/> //这个在前 <d

win2003服务器.NET+IIS环境常见问题排障总结_实用技巧

你是否经常会遇到以下的拦路虎,当你兴致勃勃地把调试好的程序发布到WEB服务器时,以下错误就出现了: 1.无法找到文件(404)白底黑字 2.没有权限访问该文件(403)白底黑字 3.直接弹出来一个要输入帐号密码的框框,然后你对着屏幕说:什么密码. 4.黄底黑字+红字的错误提示页(.Net) 5... 这些东东几乎占据了.Net+IIS搭建环境的绝大部分错误. 有时我们无意中覆盖一个"不起眼"的文件,上述错误就会蹦出来.碰巧该应用又是非常重要的应用,这足够让你接下来的一个小时冒冷汗. 不