3

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を調べるべきかをどのように知るのでしょうか。

4

2 に答える 2

1

サイトを取得する理由は、サイトの状態が含まれていないサイト構成ファイルからステータスを読み取ろうとしているためです。代わりに、次のようにIISサーバーに直接接続する必要があります。

ServerManager manager= ServerManager.OpenRemote("testserver");
var site = manager.Sites.First();
var status = site.State.ToString() ;

詳細については、以下の私の投稿を参照してください。 プログラムでIISからサイトのステータスを取得し、COMエラーを取り戻す

于 2012-12-12T23:42:36.153 に答える
0

このサイトをチェックしてください..私はExecptionplusエラーコードをグーグルで検索しました、そしてこれはあなたが正しい方向に向けられるのを助けるべきだと思います

オブジェクト識別子は有効なオブジェクトを表していません。(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>
于 2012-12-11T05:57:20.843 に答える