- 浏览: 436474 次
- 性别:
- 来自: 唐山
文章分类
最新评论
-
hautbbs:
谢谢分享!
ASP.NET 导出Excel 和csv -
hautbbs:
感谢分享!
ASP.NET 导出Excel乱码的终极解决 -
wyf:
zcl920 写道只能说 看不懂。要发就发全 取一段出来 有什 ...
图片上绘制文字换行处理 -
zcl920:
只能说 看不懂。要发就发全 取一段出来 有什么用。
图片上绘制文字换行处理 -
380086154:
有用,谢谢。
js比较日期
using System; using System.DirectoryServices; using System.Collections; using System.Text.RegularExpressions; using System.Text; namespace Demo { /// <summary> /// 这个类是静态类。用来实现管理IIS的基本操作。 /// 管理IIS有两种方式,一是ADSI,一是WMI。由于系统限制的原因,只好选择使用ADSI实现功能。 /// 这是一个遗憾。只有等到只有使用IIS 6的时候,才有可能使用WMI来管理系统 /// 不过有一个问题就是,我现在也觉得这样的一个方法在本地执行会比较的好。最好不要远程执行。 /// 因为那样需要占用相当数量的带宽,即使要远程执行,也是推荐在同一个网段里面执行 /// </summary> public class IISAdminLib { #region UserName,Password,HostName的定义 public static string HostName { get { return hostName; } set { hostName = value; } } public static string UserName { get { return userName; } set { userName = value; } } public static string Password { get { return password; } set { if(UserName.Length <= 1) { throw new ArgumentException("还没有指定好用户名。请先指定用户名"); } password = value; } } public static void RemoteConfig(string hostName, string userName, string password) { HostName = hostName; UserName = userName; Password = password; } private static string hostName = "localhost"; private static string userName; private static string password; #endregion #region 根据路径构造Entry的方法 /// <summary> /// 根据是否有用户名来判断是否是远程服务器。 /// 然后再构造出不同的DirectoryEntry出来 /// </summary> /// <param name="entPath">DirectoryEntry的路径</param> /// <returns>返回的是DirectoryEntry实例</returns> public static DirectoryEntry GetDirectoryEntry(string entPath) { DirectoryEntry ent; if(UserName == null) { ent = new DirectoryEntry(entPath); } else { // ent = new DirectoryEntry(entPath, HostName+"\\"+UserName, Password, AuthenticationTypes.Secure); ent = new DirectoryEntry(entPath, UserName, Password, AuthenticationTypes.Secure); } return ent; } #endregion #region 添加,删除网站的方法 /// <summary> /// 创建一个新的网站。根据传过来的信息进行配置 /// </summary> /// <param name="siteInfo">存储的是新网站的信息</param> public static void CreateNewWebSite(NewWebSiteInfo siteInfo) { if(! EnsureNewSiteEnavaible(siteInfo.BindString)) { throw new DuplicatedWebSiteException("已经有了这样的网站了。" + Environment.NewLine + siteInfo.BindString); } string entPath = String.Format("IIS://{0}/w3svc", HostName); DirectoryEntry rootEntry = GetDirectoryEntry(entPath); string newSiteNum = GetNewWebSiteID(); DirectoryEntry newSiteEntry = rootEntry.Children.Add(newSiteNum, "IIsWebServer"); newSiteEntry.CommitChanges(); newSiteEntry.Properties["ServerBindings"].Value = siteInfo.BindString; newSiteEntry.Properties["ServerComment"].Value = siteInfo.CommentOfWebSite; newSiteEntry.CommitChanges(); DirectoryEntry vdEntry = newSiteEntry.Children.Add("root", "IIsWebVirtualDir"); vdEntry.CommitChanges(); vdEntry.Properties["Path"].Value = siteInfo.WebPath; vdEntry.CommitChanges(); } /// <summary> /// 删除一个网站。根据网站名称删除。 /// </summary> /// <param name="siteName">网站名称</param> public static void DeleteWebSiteByName(string siteName) { string siteNum = GetWebSiteNum(siteName); string siteEntPath = String.Format("IIS://{0}/w3svc/{1}", HostName, siteNum); DirectoryEntry siteEntry = GetDirectoryEntry(siteEntPath); string rootPath = String.Format("IIS://{0}/w3svc", HostName); DirectoryEntry rootEntry = GetDirectoryEntry(rootPath); rootEntry.Children.Remove(siteEntry); rootEntry.CommitChanges(); } #endregion #region Start和Stop网站的方法 public static void StartWebSite(string siteName) { string siteNum = GetWebSiteNum(siteName); string siteEntPath = String.Format("IIS://{0}/w3svc/{1}", HostName, siteNum); DirectoryEntry siteEntry = GetDirectoryEntry(siteEntPath); siteEntry.Invoke("Start", new object[] {}); } public static void StopWebSite(string siteName) { string siteNum = GetWebSiteNum(siteName); string siteEntPath = String.Format("IIS://{0}/w3svc/{1}", HostName, siteNum); DirectoryEntry siteEntry = GetDirectoryEntry(siteEntPath); siteEntry.Invoke("Stop", new object[] {}); } #endregion #region 确认网站是否相同 /// <summary> /// 确定一个新的网站与现有的网站没有相同的。 /// 这样防止将非法的数据存放到IIS里面去 /// </summary> /// <param name="bindStr">网站邦定信息</param> /// <returns>真为可以创建,假为不可以创建</returns> public static bool EnsureNewSiteEnavaible(string bindStr) { string entPath = String.Format("IIS://{0}/w3svc", HostName); DirectoryEntry ent = GetDirectoryEntry(entPath); foreach(DirectoryEntry child in ent.Children) { if(child.SchemaClassName == "IIsWebServer") { if(child.Properties["ServerBindings"].Value != null) { if(child.Properties["ServerBindings"].Value.ToString() == bindStr) { return false; } } } } return true; } #endregion #region 获取一个网站编号的方法 /// <summary> /// 获取一个网站的编号。根据网站的ServerBindings或者ServerComment来确定网站编号 /// </summary> /// <param name="siteName"></param> /// <returns>返回网站的编号</returns> /// <exception cref="NotFoundWebSiteException">表示没有找到网站</exception> public static string GetWebSiteNum(string siteName) { Regex regex = new Regex(siteName); string tmpStr; string entPath = String.Format("IIS://{0}/w3svc", HostName); DirectoryEntry ent = GetDirectoryEntry(entPath); foreach(DirectoryEntry child in ent.Children) { if(child.SchemaClassName == "IIsWebServer") { if(child.Properties["ServerBindings"].Value != null) { tmpStr = child.Properties["ServerBindings"].Value.ToString(); if(regex.Match(tmpStr).Success) { return child.Name; } } if(child.Properties["ServerComment"].Value != null) { tmpStr = child.Properties["ServerComment"].Value.ToString(); if(regex.Match(tmpStr).Success) { return child.Name; } } } } throw new NotFoundWebSiteException("没有找到我们想要的站点" + siteName); } #endregion #region 获取新网站id的方法 /// <summary> /// 获取网站系统里面可以使用的最小的ID。 /// 这是因为每个网站都需要有一个唯一的编号,而且这个编号越小越好。 /// 这里面的算法经过了测试是没有问题的。 /// </summary> /// <returns>最小的id</returns> public static string GetNewWebSiteID() { ArrayList list = new ArrayList(); string tmpStr; string entPath = String.Format("IIS://{0}/w3svc", HostName); DirectoryEntry ent = GetDirectoryEntry(entPath); foreach(DirectoryEntry child in ent.Children) { if(child.SchemaClassName == "IIsWebServer") { tmpStr = child.Name.ToString(); list.Add(Convert.ToInt32(tmpStr)); } } list.Sort(); int i = 1; foreach(int j in list) { if(i == j) { i++; } } return i.ToString(); } #endregion } #region 新网站信息结构体 public struct NewWebSiteInfo { private string hostIP; // The Hosts IP Address private string portNum; // The New Web Sites Port.generally is "80" private string descOfWebSite; // 网站表示。一般为网站的网站名。例如"www.dns.com.cn" private string commentOfWebSite;// 网站注释。一般也为网站的网站名。 private string webPath; // 网站的主目录。例如"e:\tmp" public NewWebSiteInfo(string hostIP, string portNum, string descOfWebSite, string commentOfWebSite, string webPath) { this.hostIP = hostIP; this.portNum = portNum; this.descOfWebSite = descOfWebSite; this.commentOfWebSite = commentOfWebSite; this.webPath = webPath; } public string BindString { get { return String.Format("{0}:{1}:{2}", hostIP, portNum, descOfWebSite); } } public string CommentOfWebSite { get { return commentOfWebSite; } } public string WebPath { get { return webPath; } } } #endregion }
发表评论
-
登录时记住用户名密码的实现方式
2019-06-12 15:11 3037登录的时候记住用户 ... -
CAS 实现单点登录 .NET MVC
2016-05-24 17:14 1132http://www.cnblogs.com/woxpp/p ... -
.NET开发邮件发送功能的全面教程(含邮件组件源码)
2015-03-31 09:43 1174原文地址:http://www.cnblogs.com/he ... -
开发Web组合
2015-01-04 11:39 6141、数据库操作 ORM-Dapper 2、前台界面布局采 ... -
基于 Bootstrap 构建的网站
2014-12-14 14:12 640文档,下载地址:http://v3.bootcss.com ... -
iis8 默认不支持svc解决方法
2014-09-18 18:57 782以下内容对于使用WIN2012 部署V9的时候使用。 ... -
C# 连接Oracle(利用ODP.net,不安装oracle客户端)
2014-07-11 09:37 1698C# 连接Oracle(利用ODP.net,不安装oracl ... -
C# Attribute 特性,过期特性
2014-05-27 15:18 1851通过下列过程将属性应用到代码元素。 通过从 .NE ... -
.NET画实时直方图
2011-12-30 09:37 921using System; using System.Col ... -
设置combobx选中项
2011-12-21 15:20 1035cbRole.SelectedIndex = cbRole.I ... -
文档树状结构化目录管理方法
2011-12-20 09:50 2199本文适用于附件(各类文档、图片和压缩包等,下同)比较多的 ... -
.StringTemplate替换模板
2011-11-03 10:19 1249官方下载 www.StringTemplate. ... -
WCF-IErrorHandler
2011-10-11 16:30 1057使用 IErrorHandler 接口,我们可以更深入地 ... -
ADODB.Stream instead of Scripting.FileSystemObject.
2011-07-04 08:55 1246In a Silverlight 4 OOB App (eve ... -
Scripting.FileSystemObject对象的详细技巧指南
2011-07-03 23:39 1050Scripting.FileSystemObject对象的 ... -
Stream 和 byte[] 之间的转换
2011-07-02 16:52 1076/* - - - - - - - - - - - - - ... -
常用正则表达式
2011-06-15 20:17 798正则表达式用于字符 ... -
DynamicMethod 类
2011-05-11 22:51 1165public delegate String MyMetho ... -
一个通用的快速反射方法(A General Fast Method Invoker)
2011-04-13 22:01 1529普通反射方法 MethodInfo methodIn ... -
图片上绘制文字换行处理
2011-01-28 15:01 2888protected void Page_Load(objec ...
相关推荐
在C#中操作IIS,可以方便地管理、配置和交互与IIS相关的应用。 首先,让我们深入了解IIS的虚拟路径和物理路径的概念。虚拟路径是相对于IIS站点根目录的一个路径,比如"/Home/Index",它并不直接对应于硬盘上的文件...
`CreateIISWebSite.zip`可能是一个包含完整项目文件的压缩包,而`IISClickInstall`可能是一个可执行文件,实现了点击安装IIS和创建网站的功能。开发者可以研究这些代码,学习如何在实际项目中应用类似的方法。 总结...
本教程将详细介绍如何使用C#来操作IIS,创建一个新的Web站点。 首先,要使用C#与IIS进行交互,我们需要引用`System.Web.Administration`命名空间,这个命名空间包含了管理IIS所需的各种类。通过`ServerManager`类,...
总的来说,C# IIS自动部署工具及源码是一个宝贵的资源,不仅能够提高部署效率,还能作为教学实例,帮助开发者提升在C#编程和IIS管理方面的技能。通过研究和理解源码,开发者可以自定义工具以适应更复杂的部署场景,...
### C# WebService 发布与 IIS 配置详解及常见问题解决 #### 一、IIS 安装与配置 在开始之前,确保已经安装了 Windows 的 Internet 信息服务 (IIS)。以下是如何安装 IIS 的步骤: 1. **打开控制面板**:通过开始...
1. 创建一个新的`DirectoryEntry`,指向"IIS://localhost/W3SVC",并调用`Create`方法创建一个新的网站,指定网站ID和类型(例如,"IIsWebServer")。 2. 设置新网站的属性,如`ServerComment`(站点描述)、`...
在这个场景中,我们讨论的是一个使用C#编写的IIS(Internet Information Services)站点管理工具。IIS是微软提供的一个全功能Web服务器,用于托管网站、应用程序和服务。 这个小工具的主要目标是简化IIS和FTP服务器...
IIS(Internet Information Services)是微软提供的一个强大的Web服务器,广泛用于托管网站和应用程序。对于IIS6.0及更高版本,管理和配置过程可以通过各种方式实现,其中就包括使用特定的配置工具,如本案例中的...
【C# IIS管理器(开源) IISManager】是一个基于C#编程语言开发的工具,主要用于管理和配置IIS(Internet Information Services)服务器。IIS是微软提供的一个强大的Web服务器平台,广泛应用于企业级网站部署和管理...
IIS(Internet Information Services)是微软提供的一个强大的Web服务器,用于托管网站和服务。本篇文章将深入探讨如何使用C#编程语言在Windows Server 2003上创建IIS站点。 首先,我们要了解的是C#如何与IIS进行...
压缩包中的"C#配置文件助手"可能包含了一个简单项目,演示了如何创建一个读取和写入配置文件的C#控制台应用。源代码可能包括以下几个关键部分: - `Program.cs`: 包含主方法,用于调用读写功能。 - `ConfigHelper...
IIS是微软提供的一个Web服务器服务,常用于Windows操作系统上,用于托管网站和应用程序。然而,IIS的安装和配置可能对一些用户来说较为复杂,或者在某些场景下,用户可能不需要完整的IIS功能集。在这种情况下,IIS...
IIS(Internet Information Services)是微软提供的一个Web服务器软件,用于在Windows操作系统上托管网站和服务。然而,IIS并非唯一的选择,有许多其他优秀的IIS替代工具可以满足不同的Web服务需求。这些替代工具...
C# IIS管理器通过创建ManagementObject实例,可以调用这些接口执行对IIS的操作,如创建网站、设置绑定、管理应用程序池等。 三、站点创建 创建IIS站点是C# IIS管理器的核心功能之一。这涉及到以下步骤: 1. 选择或...
IIS(Internet Information Services)是微软公司提供的一个Web服务器软件,用于托管各种Web应用程序,包括ASP(Active Server Pages)等。ASP是一种服务器端脚本技术,用于创建动态交互式网页。在Windows操作系统中...
总的来说,IIS多站点管理系统源码展示了如何利用C#和IIS管理API来高效地管理和控制Web服务器上的多站点环境,提供了一个方便的工具,使得系统管理员无需手动操作IIS管理控制台即可完成常见任务。
4. **zz.IIsAdmin项目**:根据提供的压缩包文件名,我们可以推测“zz.IIsAdmin”是一个实现了上述功能的C#项目。这个项目可能包含了一个用户友好的界面,允许用户直观地管理IIS站点和服务,同时也可能提供了命令行...
它是一个基于C#语言编写的独立应用程序,设计目标是为ASP.NET项目提供便捷的发布服务。用户无需打开庞大的Visual Studio,只需运行这个打包工具,即可完成项目的部署打包。这对于小型团队或个人开发者而言,无疑节省...
这通常涉及创建一个新的WIM映像,将IIS配置和网站内容添加进去,然后保存和封存映像。 8. **权限和安全性**:由于涉及到系统级别的操作,如挂载WIM和管理IIS,所以确保代码运行时具有足够的权限至关重要。可能需要...
以下是一个基本的C#代码示例,展示了如何使用`System.Xml.Linq`库来添加新的IIS绑定: ```csharp using System; using System.Configuration; using System.Xml.Linq; public static void AddBinding(string ...