你好,这里是我的csharp代码,从IIS服务器获取所有网站
List<IISObject> iisSiteList = new List<IISObject>();
ServerManager serverMgr = new ServerManager();
SiteCollection sitecollection = serverMgr.Sites;
try
{
foreach (var site in sitecollection)
{
string SiteState = site.State.ToString();
if (site.Name != "Default Web Site")
{
IISObject issObject = new IISObject() { Name = site.Name, SiteId = site.Id, State = SiteState };
iisSiteList.Add(issObject);
}
}
return iisSiteList;
}
catch (Exception e)
{
return e.Message.ToString();
}
上面的代码给了我以下错误
('对象标识符不表示有效对象。(“”HRESULT中的异常:0x800710D8“)
这个错误的原因是其中一个站点的状态未知,所以如果我简单地注解这行**string SiteState = site.State.ToString();**然后它开始工作。
现在我需要帮助,我如何才能验证对象状态之前,它分配给一个变量。我尝试了这个
if (site.State)
{
string SiteState = site.State.toString();
}
else
{
string SiteState = "unknown"
}
然后Visual Studio显示了这个
CS 0029:无法将类型“Microsoft.Web.Administration.ObjectState”隐式转换为“bool”
现在你能帮我修一下吗
1条答案
按热度按时间cwtwac6a1#
Microsoft.Web.Administration ObjectState是一个枚举类型,你需要像
site.State != ObjectState.Unknown
一样检查它,你可以用下面的例子作为参考: