IISサーバーに認識されているMIMEタイプのリストを取得しようとしています(2年前に私が尋ねて回答したことがわかります)。コピペした回答には次のものが含まれます。
GetObject("IIS://LocalHost/MimeMap")
msdn
GetObject("IIS://localhost/mimemap")
KB246068
GetObject("IIS://localhost/MimeMap")
スコット・ハンセルマンのブログ
new DirectoryEntry("IIS://Localhost/MimeMap"))
スタックオーバーフロー
new DirectoryEntry("IIS://Localhost/MimeMap"))
スタックオーバーフロー
New DirectoryServices.DirectoryEntry("IIS://localhost/MimeMap")
速度レビュー
あなたはアイデアを得る。魔法のパスiis://localhost/mimemapを使用することに誰もが同意します。そして、これは、そうでない場合を除いて、うまく機能します。
失敗する理由について私が見つけることができる唯一の手がかりは、IIS MVP、Chris Crowe のブログからのものです。
string ServerName = "LocalHost";
string MetabasePath = "IIS://" + ServerName + "/MimeMap";
// Note: This could also be something like
// string MetabasePath = "IIS://" + ServerName + "/w3svc/1/root";
DirectoryEntry MimeMap = new DirectoryEntry(MetabasePath);
ここには 2 つの手がかりがあります。
- 彼はMetabase Path
iis://localhost/mimemap
と呼んでいます。「メタベース」へのある種の「パス」のように思えます。 - 彼は、メタベースへのパスは別のものである可能性があると述べています。そして彼はそれがどのようなものであるかの例を挙げています.
現在、私と地球全体が、「MetabasePath」を次のようにハードコーディングしています。
iis://localhost/MimeMap
それは本当にどうあるべきですか?有効な MetabasePath を構築するには、コードで何を行う必要がありますか?
注: アクセス拒否エラーは発生しません。無効な MetabasePath がある場合、エラーは同じです。iis://localhost/SoTiredOfThis