C# 如何确定是否以编程方式向IIS 7注册了WCF 3和ASP.NET
我被要求编写一个工具,检测所有需求,并告诉用户机器是否满足所有需求,是否能够安装我实习的公司开发的不同软件解决方案C# 如何确定是否以编程方式向IIS 7注册了WCF 3和ASP.NET,c#,C#,我被要求编写一个工具,检测所有需求,并告诉用户机器是否满足所有需求,是否能够安装我实习的公司开发的不同软件解决方案 我需要检查WCF3和ASP.NET是否正确注册到IIS,代码是用C#编写的。我需要一种防弹方法来知道它是否正确注册。在工厂构造ServiceHost之后,使用ServiceHostFactory protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses) { va
我需要检查WCF3和ASP.NET是否正确注册到IIS,代码是用C#编写的。我需要一种防弹方法来知道它是否正确注册。在工厂构造ServiceHost之后,使用ServiceHostFactory
protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
var hostname = base.CreateServiceHost(serviceType, baseAddresses);
hostname.Extensions.Add(new CustomConfigurer());
return hostname;
}
或者您可以使用HttpContextprivate string ConnectionString()
{
if (HttpContext.Current!=null)
return ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
else
return GetConnectionStringFromRegistry();
}
检查此线程:如果您使用的是IIS 7,则可以通过编程方式访问所有已注册的站点。请记住我提供的讨论如何以编程方式添加站点的线程,您应该能够使用“站点”集合访问所有已注册的服务,并按名称或其他条件搜索这些服务(您必须检查哪些属性可用)
还需要注意的是,如果您对应用程序池也感兴趣,您可以这样访问它们:
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
最后,您的应用程序需要在具有适当权限的帐户下运行才能读取此信息。我将尝试此操作,稍后再进行检查,我需要找到适当的属性进行检查。这很有效,我只需要找到获取模块列表的正确方法。
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;