IIS7内でASP.NETが信頼性が高く正しい方法で有効になっているかどうかを確認することが課題です。IIS 7でASP.NETが有効になっているかどうかを検出する方法
Server Manager ->
Roles ->
Web Server (IIS) ->
Remove Role Services ->
Remove ASP.NET
applicationHost.configファイル内になければならないこれを決定するための自然な場所を:
を有効/無効にするには、に行くことによって、この場合に行われます。しかし、ASP.NETを有効または無効にすると、 "ManagedEngine"モジュールが使用可能になり、タグにisapiフィルタレコードが残っています。
現時点で最も適切なのは、<isapiCgiRestriction>タグにaspnet_isapi.dllが含まれているか、ASPNETトレースプロバイダーが利用可能かどうかを確認することです。
ただし、これらはASP.NET設定の存在を直接検出するものではなく、ユーザーによって再構成される可能性がある副作用です。
ロールを列挙しても、可能であればOSの設定ではなく、IISの設定/設定を調べることでこれを行うことをお勧めします。&サーバー上のサービスは、このテクニックが常にIIS7使用されている。応答のための
更新
感謝。私がやりたいことを明確にするために、サーバーの構成のさまざまな場所から単一の(読み取り専用の)ビューに設定を引き出し、ユーザーがソフトウェアを動作させるために構成する必要があることを示します。私は持参する必要がある設定の
一つは、このいずれかになります。
1は赤で強調表示しました。
私は設定を操作する必要はありません、それを再現するだけです。この例のように、IISの役割をサーバーに追加したときにユーザーがASP.NETボックスをチェックしたかどうかを確認したいと思います。
これは、私が必要としないチェックにプラットフォーム固有の依存関係を追加したくないため、役割サービスを列挙するのではなく、IISで信頼できるものを調べることで行います。 Roles/Servicesインフラストラクチャを持たないサーバーにIIS7をインストールすることが可能かどうかはわかりませんが、優先的には心配したくありません。私はまた、すでにIISの周りをスクラブするためのライブラリの負荷があります。
しかし、ロール/サービスを列挙する方法を見つけるのも難しいので、それを含む解決策があれば、それは確かに有用であり、 ASPNETトレースプロバイダーが横たわっています。
残念ながら、ASP.NETボタンをチェックしないと、IIS applicationHost.configファイルでManagedEngineモジュールを取得できます。信頼できるチェックではありません。また、ASP.NETをisapiフィルタとしてマップすることもできます。そのため、チェックするだけでは不十分です。これらのことは、ASP.NETがインストールされているが削除されている場合に特に問題になります。
ロールサービスを調べるのが最善のソリューションだと思われます。しかし、これに関するAPI情報は非常に稀有なので、援助のために泣いています。
これはconsole/windowsフォームアプリですか、それともIISアプリ自体ですか?あなたは特定のサイトを意味するのですか、それとも一般的には意味しますか? – Kev
検出はwinformsアプリケーションからのものです。 –
検出は一般的に行う必要があります。基本的には、ASP.NETロールサービスが削除された場合、それはサーバー全体の設定であり、その状態を検出する信頼できる方法です。 –