3

我被要求编写一个工具来检测所有要求并告诉用户机器是否满足所有要求,以便能够安装我正在实习的公司开发的不同软件解决方案。

我需要检查 WCF3 和 ASP.NET 是否正确注册到 IIS,代码是用 C# 编写的。我需要一种防弹方法来知道它是否正确注册。

4

2 回答 2

2

检查此线程:使用 C# 在 IIS 中以编程方式创建网站并设置端口号,如果您使用的是 IIS 7,则可以以编程方式访问所有已注册的站点。请记住我提供的线程讨论了如何以编程方式添加站点,您应该能够使用“站点”集合访问所有注册的服务并按名称或其他条件搜索这些服务(您必须检查哪些属性可用)。

ServerManager iisManager = new ServerManager();
iisManager.Sites; //Use this collection to find the services you need to know exist

同样重要的是要注意,如果您也对应用程序池感兴趣,您可以像这样访问它们:

ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;

最后,您的应用程序将需要在具有适当权限的帐户下运行才能读取此信息。

于 2012-11-29T16:14:26.230 回答
1

使用ServiceHostFactory,工厂构造好ServiceHost之后

protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
  var hostname = base.CreateServiceHost(serviceType, baseAddresses);
  hostname.Extensions.Add(new CustomConfigurer());
  return hostname;
}

或者你可以使用 HttpContext

private string ConnectionString()
        {
            if (HttpContext.Current!=null)
                return ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
            else
                return GetConnectionStringFromRegistry();
        }
于 2012-11-29T16:12:37.860 回答