使用c# 如何检测某一台机器是否安装了Web服务器。比如IIS

解决方案 »

  1.   

    IIS和Apache,都有控制台命令的,web服务器常用的就那几种,用控制台命令查看,具体用什么控制台命令,忘记了~~思路就是这样~~
      

  2.   

    我的获取Web服务器的名称 ,请求80端口就不行了。
      

  3.   

    能不能说的详细一点啊,控制台命令?用命令检测是否安装IIS?
      

  4.   


    using System;
    using System.DirectoryServices;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace 读取IIS信息
    {
        class Program
        {
            static void Main(string[] args)
            {
                DirectoryEntry rootEntry = new DirectoryEntry("IIS://localhost/w3svc");            int siteID = 1;
                
                foreach (DirectoryEntry entry in rootEntry.Children)
                {
                    if (entry.SchemaClassName.Equals("IIsWebServer", StringComparison.OrdinalIgnoreCase))
                    {
                        Console.WriteLine("Name: {0}", entry.Name);
                        Console.WriteLine("Path: {0}", IISWorker.GetWebsitePhysicalPath(entry));
                        Console.WriteLine("ServerBindings: {0}", entry.Properties["ServerBindings"].Value);
                        Console.WriteLine();                    DirectoryEntry virEntry = new DirectoryEntry(entry.Path + "/ROOT");
                        foreach (DirectoryEntry entryVirtual in virEntry.Children)
                        {
                            if (entryVirtual.SchemaClassName.Equals("IIsWebVirtualDir", StringComparison.OrdinalIgnoreCase))
                            {
                                Console.WriteLine("SchemaClassName: {0}", entryVirtual.SchemaClassName);
                                Console.WriteLine("Name: {0}", entryVirtual.Name);
                                Console.WriteLine("Path: {0}", entryVirtual.Properties["Path"].Value);
                                Console.WriteLine();
                            }
                        }
                        Console.ReadKey();                    int ID = Convert.ToInt32(entry.Name);                    if (ID >= siteID)
                        {
                            siteID = ID + 1;
                        }
                    }
                }
            }        
        }    public class IISWorker
        {
            /// <summary>
            /// 得到网站的物理路径
            /// </summary>
            /// <param name="rootEntry">网站节点</param>
            /// <returns></returns>
            public static string GetWebsitePhysicalPath(DirectoryEntry rootEntry)
            {
                string physicalPath = "";
                foreach (DirectoryEntry childEntry in rootEntry.Children)
                {
                    if ((childEntry.SchemaClassName == "IIsWebVirtualDir") && (childEntry.Name.ToLower() == "root"))
                    {
                        if (childEntry.Properties["Path"].Value != null)
                        {
                            physicalPath = childEntry.Properties["Path"].Value.ToString();
                        }
                        else
                        {
                            physicalPath = "";
                        }
                    }
                }
                return physicalPath;
            }
        }
    }
    新建一个控制台程序,拷贝代码,添加System.DirectoryServices的引用,编译输出