我正在尝试使用Servermanager读取网站的状态。基本上这就是我所拥有的,
var serverManager = new ServerManager(siteInstance.Server.ConfigPath);
var site = serverManager.Sites.FirstOrDefault(x => x.Id == Convert.ToInt64(siteInstance.IisIdentifier));
return site.State.ToString();我能够读取配置文件和站点详细信息,没有任何问题。但是网站的状态要么是下面给我COM错误,要么是给出的状态不能反映IIS中网站的实际状态。
The object identifier does not represent a valid object. (Exception from HRESULT: 0x800710D8)据我所知,配置文件只包含站点信息。它不指示哪些IIS服务器正在从配置中读取数据。那么,ServerManager如何知道应该查看哪个IIS来查找站点的运行状态呢?
发布于 2012-12-13 07:42:36
获取站点的原因是因为您试图从站点配置文件中读取状态,该文件不包含站点的状态。相反,您应该像这样直接连接到IIS服务器:
ServerManager manager= ServerManager.OpenRemote("testserver");
var site = manager.Sites.First();
var status = site.State.ToString() ;有关详细信息,请参阅我下面的帖子:Programmatically get site status from IIS, gets back COM error
发布于 2012-12-11 13:57:21
签出此网站..我在谷歌上搜索了Execption +错误代码,我认为这应该可以帮助您找到正确的方向
The object identifier does not represent a valid object. (Exception from HRESULT: 0x800710D8)
如果本文不能解决问题或问题,请尝试以下方法。另外,还要粘贴.config文件外观的一个片段。
已在IIS管理器中检查ApplicationPool以验证您是否具有DefaultAppPool。即使您不使用它,IIS有时仍然需要它来实现一些自动化。
查看system32\inetsrv\config\applicationHost.config或通过IIS管理UI查看。
例如:
<applicationPools>
<add name="DefaultAppPool" />
<add name="Classic .NET AppPool" managedPipelineMode="Classic" /> <applicationPoolDefaults>
<processModel identityType="ApplicationPoolIdentity" /> </applicationPoolDefaults>
</applicationPools>https://stackoverflow.com/questions/13814382
复制相似问题