C# 用代码配置IIS 当我的web网站拿到别人机器上用的时候要配置IIS,我想写一个小程序去配置,可是Data Source不一样的啊 ,我要怎样用代码实现在配置IIS时,也把Data Source也修改一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 IIS 5 下面有么 ?用7的现在不多吧 我是放到配置文件夹里的啊 (注:我的小程序时应用程序不是发布的网站)那我要怎样去修改web程序的配置文件啊 System.DirectoryServices.DirectoryEntriesIIs创建虚拟目录 using System; using System.Collections.Generic; using System.Text; using System.DirectoryServices; namespace Install_IIS { class IISManager { public IISManager() { } /// <summary> /// 创建虚拟目录 /// </summary> /// <param name="WebSite">服务器站点名称</param> /// <param name="VDirName">虚拟目录名称</param> /// <param name="Path"></param> /// <param name="RootDir"></param> /// <param name="chkRead"></param> /// <param name="chkWrite"></param> /// <param name="chkExecute"></param> /// <param name="chkScript"></param> /// <param name="chkAuth"></param> /// <param name="webSiteNum">1</param> /// <param name="serverName">localhost</param> /// <returns></returns> public string CreateVDir(string WebSite,string VDirName, string Path, bool RootDir, bool chkRead,bool chkWrite, bool chkExecute, bool chkScript, bool chkAuth, int webSiteNum, string serverName) { string sRet=String.Empty; System.DirectoryServices.DirectoryEntry IISSchema; System.DirectoryServices.DirectoryEntry IISAdmin; System.DirectoryServices.DirectoryEntry VDir; bool IISUnderNT; // // 确定IIS版本 // IISSchema = new System.DirectoryServices.DirectoryEntry("IIS://" + serverName + "/Schema/AppIsolated"); if(IISSchema.Properties["Syntax"].Value.ToString().ToUpper()=="BOOLEAN") IISUnderNT=true; else IISUnderNT=false; IISSchema.Dispose(); // // Get the admin object // 获得管理权限 // IISAdmin=new System.DirectoryServices.DirectoryEntry("IIS://" +serverName +"/W3SVC/" + webSiteNum + "/Root"); if (IISAdmin == null) return "IIS 未正常安装"; if (IISAdmin.Children == null) return "IIS 可能未启动"; // // If we're not creating a root directory // 如果我们不能创建一个根目录 // if (!RootDir) { // // If the virtual directory already exists then delete it // 如果虚拟目录已经存在则删除 // foreach(System.DirectoryServices.DirectoryEntry v in IISAdmin.Children) { if (v.Name == VDirName) { // Delete the specified virtual directory if it already exists try { IISAdmin.Invoke("Delete", new string [] { v.SchemaClassName, VDirName }); IISAdmin.CommitChanges(); } catch(Exception ex) { sRet+=ex.Message; } } } } // // Create the virtual directory // 创建一个虚拟目录 // if (!RootDir) { VDir = IISAdmin.Children.Add(VDirName, "IIsWebVirtualDir"); } else { VDir = IISAdmin; } // // Make it a web application // 创建一个web应用 // VDir.Properties["Path"][0] = Path; //设置虚拟目录指向的物理路径 if (IISUnderNT) { VDir.Invoke("AppCreate", false); } else { VDir.Invoke("AppCreate", 1); } // // Setup the VDir // 设置虚拟目录 // VDir.Properties["AccessRead"][0] = chkRead; //设置读取权限 VDir.Properties["AccessExecute"][0] = chkExecute; //设置执行权限 VDir.Properties["AccessWrite"][0] = chkWrite; //设置写入权限 VDir.Properties["AccessScript"][0] = chkScript; //执行权限 VDir.Properties["DefaultDoc"][0] = "index.asp,Default.aspx";//设置默认文档,多值情况下中间用逗号分割 VDir.Properties["AppFriendlyName"][0] = VDirName; //应用程序名称 VDir.Properties["AuthFlags"][0] = 0; // 设置目录的安全性,0表示不允许匿名访问,1为允许,3为基本身份验证,7为windows继承身份验证 VDir.Properties["AuthNTLM"][0] = chkAuth; VDir.Properties["EnableDefaultDoc"][0] = true; VDir.Properties["EnableDirBrowsing"][0] = false; // // NT doesn't support this property // NT格式不支持这特性 // if (!IISUnderNT) { VDir.Properties["AspEnableParentPaths"][0] = true; } // // Set the changes // 设置改变 // VDir.CommitChanges(); //下面的方法是得到所有属性名称的方法: foreach (PropertyValueCollection pvc in VDir.Properties) { Console.WriteLine(pvc.PropertyName); } sRet+= "VRoot " +VDirName + " created!"; return sRet; } #region Properties public string ServerName { get { return _serverName; } set { _serverName = value; } } #endregion public static string VirDirSchemaName = "IIsWebVirtualDir"; #region Private Members private string _serverName; #endregion } }、、、、、、、、、、、、、、、、、、、、、、、、、、、、、我用的这个方法,在有SQL2005的机上运行正常,在没有SQL2005上则没问题,这是为什么?我用VS2008+SQL2000开发的 如何使用C#如何实现visio中动态连接线的效果 C# UDP发送图片 一个关于协同工作密码如何存储的问题 求助:如何在上传文件时获得该文件的绝对路径和文件名(C#.net) 求教:windows内存中像素的组成是不是BRG? 大哥求救!!!! .net2002升级到2003出现的问题? ★★★ 如何用C#启动一个非exe扩展名的 应用程序 ? C#中如何实现delphi中的FieldByName(“字段名”).asstring的功能????????? IP地址转换成网络字节顺序疑问 List转换成数组??? 我现在用ZedGraphControl,可是怎么出表格报表
(注:我的小程序时应用程序不是发布的网站)
那我要怎样去修改web程序的配置文件啊
return "IIS 未正常安装";
if (IISAdmin.Children == null)
return "IIS 可能未启动"; // // If we're not creating a root directory // 如果我们不能创建一个根目录 // if (!RootDir) { // // If the virtual directory already exists then delete it // 如果虚拟目录已经存在则删除 // foreach(System.DirectoryServices.DirectoryEntry v in IISAdmin.Children) { if (v.Name == VDirName) { // Delete the specified virtual directory if it already exists try { IISAdmin.Invoke("Delete", new string [] { v.SchemaClassName, VDirName }); IISAdmin.CommitChanges(); } catch(Exception ex) { sRet+=ex.Message; } } } } // // Create the virtual directory // 创建一个虚拟目录 // if (!RootDir) { VDir = IISAdmin.Children.Add(VDirName, "IIsWebVirtualDir"); } else { VDir = IISAdmin; } // // Make it a web application // 创建一个web应用 // VDir.Properties["Path"][0] = Path; //设置虚拟目录指向的物理路径 if (IISUnderNT) { VDir.Invoke("AppCreate", false); } else { VDir.Invoke("AppCreate", 1); }
// // Setup the VDir // 设置虚拟目录 // VDir.Properties["AccessRead"][0] = chkRead; //设置读取权限 VDir.Properties["AccessExecute"][0] = chkExecute; //设置执行权限 VDir.Properties["AccessWrite"][0] = chkWrite; //设置写入权限 VDir.Properties["AccessScript"][0] = chkScript; //执行权限 VDir.Properties["DefaultDoc"][0] = "index.asp,Default.aspx";//设置默认文档,多值情况下中间用逗号分割 VDir.Properties["AppFriendlyName"][0] = VDirName; //应用程序名称 VDir.Properties["AuthFlags"][0] = 0; // 设置目录的安全性,0表示不允许匿名访问,1为允许,3为基本身份验证,7为windows继承身份验证 VDir.Properties["AuthNTLM"][0] = chkAuth; VDir.Properties["EnableDefaultDoc"][0] = true; VDir.Properties["EnableDirBrowsing"][0] = false; // // NT doesn't support this property // NT格式不支持这特性 // if (!IISUnderNT) { VDir.Properties["AspEnableParentPaths"][0] = true; } // // Set the changes // 设置改变 // VDir.CommitChanges(); //下面的方法是得到所有属性名称的方法:
foreach (PropertyValueCollection pvc in VDir.Properties) { Console.WriteLine(pvc.PropertyName); } sRet+= "VRoot " +VDirName + " created!"; return sRet; } #region Properties public string ServerName { get { return _serverName; } set { _serverName = value; } } #endregion public static string VirDirSchemaName = "IIsWebVirtualDir"; #region Private Members private string _serverName; #endregion } }、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
我用的这个方法,在有SQL2005的机上运行正常,在没有SQL2005上则没问题,这是为什么?
我用VS2008+SQL2000开发的