当前位置 主页 > iis相关 >

C#如何管理控制iis7?

时间: 2018-10-09 11:18 栏目:iis相关

  把在找到正确方法前遇到的挫折也拿出来与大家分享,相信不少朋友从iis6到iis7的过渡中也和我存在同样的疑问,开始的时候我需要在IIS7下创建虚拟目录,用的是DirecotryEntry这个类,怎么也不能,总会报错[System.Runtime.InteropServices.COMException]{"未知错误(0x80005000)"}这个错误。
 
  第一步:找机子上安全方面的问题。我IIS7是装在Windowsserver2008上的。我取消了系统的UAC。并用“以管理员身份”运行的该程序。结果还是不行。
 
  第二步:在网上找有没有人跟我碰到相同的问题。果然!很多人都有,网上给的解决方案是:
 
  TheIISMetabaseandIIS6ConfigurationCompatibilityisnotautomaticallyinstalledwhenyouenabletheWebServerroleinWindows2008Server.Ifyouenablethisfeature,youroldDirectoryServicescodein.NETshouldworklikeitusedto.
 
  需要安装IIS6Metabase兼容性组件
 
  用了这种方案果然成功了!但事情并没有结束。
 
  第三步:找原因,为什么IIS7不能用这种方法!
 
  功夫不负有心人!
 
  IIS7是没有元数据的。哎~~这就是根本原因,大家可以到C:\WINDOWS\system32\inetsrv这个目录看看,IIS6的和IIS7的文件不同的。
 
  所以后来找到这种方法:
 
  请注意本文的内容均基于WindowsVistaBeta2版本,在正式的发布版本中可能会有所改变。
 
  Microsoft中提供了管理IIS7的一些非常强大的API——Microsoft.Web.Administration,可以很方便的让我们以编程的方式管理,设定IIS7的各项配置。Microsoft.Web.Administration.dll位于IIS的目录(%WinDir%\System32\InetSrv)下,在项目中添加对其的引用后您就可以使用这些API了。下图显示了Microsoft.Web.Administration.dll中的主要对象。
 
  让我们通过几个例子来使用Microsoft.Web.Administration,下面的例子均非常易懂,我就不再过多解释了。
 
  1、建立一个站点(Site)
 
  ServerManageriisManager=newServerManager();
 
  iisManager.Sites.Add("NewSite","http","*:8080:","d:\\MySite");
 
  iisManager.Update();
 
  2、将一个应用程序(Application)添加到一个站点
 
  ServerManageriisManager=newServerManager();
 
  iisManager.Sites["NewSite"].Applications.Add("/Sales","d:\\MyApp");
 
  iisManager.Update();
 
  3、建立一个虚拟目录(VirtualDirectory)
 
  ServerManageriisManager=newServerManager();
 
  Applicationapp=iisManager.Sites["NewSite"].Applications["/Sales"];
 
  app.VirtualDirectories.Add("/VDir","d:\\MyVDir");
 
  iisManager.Update();
 
  4、运行时控制:停止一个站点
 
  ServerManageriisManager=newServerManager();
 
  iisManager.Sites["NewSite"].Stop();
 
  5、运行时控制:回收应用程序池(RecycilinganApplicationPool)
 
  ServerManageriisManager=newServerManager();
 
  iisManager.ApplicationPools["DefaultAppPool"].Recycle();
 
  6、运行时控制:得到当前正在处理的请求
 
  ServerManageriisManager=newServerManager();
 
  foreach(WorkerProcessw3wpiniisManager.WorkerProcesses){
 
  Console.WriteLine("W3WP({0})",w3wp.ProcessId);
 
  foreach(Requestrequestinw3wp.GetRequests(0)){
 
  Console.WriteLine("{0}-{1},{2},{3}",
 
  request.Url,
 
  request.ClientIPAddr,
 
  request.TimeElapsed,
 
  request.TimeInState);
 
  }
 
  }
 
  还有一个有用之处是Microsoft.Web.Administration提供了对*.config(例如web.config)文件的编辑功能,让您再也不用像修改普通XML文件一样修改*.config了。
缩小 缩小 缩小 缩小
IIS7整站下载工具 IIS7批量查询排名 IIS7远程桌面连接工具 iis7-iis网站批量管理 iis7批量替换工具 IIS7服务器专用下载工具 IIS7日志分析工具 IIS7批量PING,服务器批量添加网卡IP小工具 IIS7远程同步备份工具
IIS7网站监控 站群批量SEO查询 批量获取排名域名 批量关键词排名查询 模拟各种蜘蛛 批量友情链接监测 批量检测死链 搜索引擎大全 批量查询外链
批量查询网站标题 批量查询KeyWords 批量查询描述 批量查询网站IP 批量百度收录查询 批量查询百度日收录 批量查询百度周收录 批量查询百度月收录 批量查询360总收录 批量查询360日收录 批量查询网站年龄 批量查询360PC权重 批量查询爱站移动权重 批量查询站长移动权重 批量查询360移动权重 批量查询神马权重 批量查询谷歌PR 批量查询搜狗PR 批量查询百度反链 批量查询爱站首页反链 批量查询爱站内页反链 批量查询百度快照 批量查询搜狗快照 批量icp备案查询 批量网站ip地址查询 批量查询导出链接 批量查询百度V认证 批量查询百度安全 批量查询站长PC权重 批量查询爱站PC权重 批量查询搜狗总收录 站长资源大全 IIS7-cms大全 IIS7站群大全 IIS7虚拟空间大全 IIS7服务器大全 IIS7-VPS大全