获取IIS中网站信息的问题

songmag 2012-05-31 03:31:57
想要获取iis中的网站信息用于分析,写了一个aspx页面读取所在IIS中的网站列表:

<%@ Page Language="C#" Debug="true" %>
<%@ Assembly Name="System.DirectoryServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" %>
<%@ Import namespace= "System.DirectoryServices"%>

<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
DirectoryEntry rootEntry = new DirectoryEntry("IIS://localhost/w3svc");
foreach (DirectoryEntry entry in rootEntry.Children)
{
if (entry.SchemaClassName.Equals("IIsWebServer", StringComparison.OrdinalIgnoreCase))
{
Response.Write("Name: "+entry.Name+"<br>");
Response.Write("<br>============<br>");

}
}
}
</script>


从网上查了很多相关问题,基本都是类型的代码。
我的iis中有差不多400个site,但是通过这个页面之显示出35个网站。
那位老大帮帮忙看看我的代码是不是有问题啊
...全文
123 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
songmag 2012-06-01
  • 打赏
  • 举报
回复
找到的那个例子网址:

http://stackoverflow.com/questions/1731794/asp-net-iis-metabase-doesnt-return-all-sites

songmag 2012-06-01
  • 打赏
  • 举报
回复
找到了这样一个类似的问题,好像也出现了这样的情况,但是按照他的解决方案,我无法调试通过。
帮帮忙啊?
我的代码如下:

<%@ Page Language="C#" Debug="true" %>
<%@ Assembly Name="System.Management, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" %>
<%@ Import namespace= "System.Management"%>

<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
ConnectionOptions co = new ConnectionOptions();
co.Authentication = AuthenticationLevel.PacketPrivacy;
ManagementPath iisPath = new ManagementPath();
iisPath.NamespacePath = @"root/MicrosoftIISv2";
ManagementScope oms = new ManagementScope(iisPath, co);
oms.Connect();
ObjectQuery oQuery = new ObjectQuery("select * from IISWebServerSetting");
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oms, oQuery);
foreach (ManagementObject oreturn in oSearcher.Get())
{
Response.Write(oreturn["ServerComment"] + " (" + oreturn["Name"] + ")<br />");
}
}


</script>


在foreach (ManagementObject oreturn in oSearcher.Get()) 时报错,页面提示

Provider load failure
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Management.ManagementException: Provider load failure

Source Error:


Line 14: ObjectQuery oQuery = new ObjectQuery("select * from IISWebServerSetting");
Line 15: ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oms, oQuery);
Line 16: foreach (ManagementObject oreturn in oSearcher.Get())
Line 17: {
Line 18: Response.Write(oreturn["ServerComment"] + " (" + oreturn["Name"] + ")<br />");


62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧