asp.net 如何验证Microsoft.Web.Administration ObjectState

yqkkidmi  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(116)

你好,这里是我的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”
现在你能帮我修一下吗

cwtwac6a

cwtwac6a1#

Microsoft.Web.Administration ObjectState是一个枚举类型,你需要像site.State != ObjectState.Unknown一样检查它,你可以用下面的例子作为参考:

if (site.State != ObjectState.Unknown)
{
  string SiteState = site.State.ToString();
}
else
{
string SiteState = "unknown";
}

相关问题