2012-03-21 10 views
1

IISの設定に問題があります。私はプログラムでWebサイトとWebサイトの下にアプリケーション(仮想ディレクトリ)を作成します。他の設定の中で、アプリケーション設定にワイルドカードアプリケーションマップを追加します。 IISが再起動されると、wilcardアプリケーションマップ(および他のいくつかの設定が削除されますが、わかりやすくするためにwilcardマップが示されています)。 IISマネージャを使用してマップを再追加できますが、IISを再起動するとマップが削除されます。しかし、ワイルドカードマップを追加し、IISを再起動せずに最初にブラウザを使用してそのアプリケーションのページをヒットした場合、IISを再起動してもマップは消えません。何が起きているのか?ここ停止時にIISがWebサイトの設定を元に戻す

は私のコードです:

// root virtual dir object 
string strRootVirtDirPath = "IIS://localhost/w3svc/" + strWebSiteID + "/root"; 
DirectoryEntry deRootVirtDir = new DirectoryEntry(strRootVirtDirPath); 

// add new virtual dir 
DirectoryEntry deNewVirtDir = deRootVirtDir.Children.Add(strAppName, "IIsWebVirtualDir"); 

deNewVirtDir.Properties["Path"].Value = strPhysicalDir; 
deNewVirtDir.Properties["AppFriendlyName"].Value = strAppName; 
deNewVirtDir.Properties["AppRoot"].Value = "/LM/W3SVC/" + strWebSiteID + "/Root/" + strAppName; 
deNewVirtDir.Properties["AppPoolId"].Value = strAppPoolName; 

// create the application 
deNewVirtDir.Invoke("AppCreate", 1); 

// commit changes 
deNewVirtDir.CommitChanges(); 
deRootVirtDir.CommitChanges(); 
deNewVirtDir.Close(); 
deRootVirtDir.Close(); 
+0

申し訳ありませんが、IIS 6のことを忘れていました。 –

+0

仮想ディレクトリを作成するときに.Invoke( "AppCreate")を正しく呼び出してから、設定を更新した後に.CommitChanges()を呼び出しましたか? – AaronS

+0

関数呼び出しが正しいかどうかを確認する方法がわかりません。コードは正常に実行されますが、例外はありません。ここに私のコード: –

答えて

0

は、問題を考え出しました。 MicrosoftのKB記事286196に記載されています。http://support.microsoft.com/kb/286196 影響を受けるすべてのマシンは、この記事で説明したように、Windows Server 2K3 R2でした。

関連する問題