0

データベース接続情報を取得するために、IIS にインストールされているアプリケーション (つまり、仮想ディレクトリ) にアクセスしようとするコンソール アプリケーションがあります。これを Windows XP (IIS 5.1) で実行すると動作しますが、Windows 7 (IIS 7.5) では動作しません。コンソール アプリケーションのターゲット .Net フレームワークは、数年前に開発されたため、2.0、3.5 (5 つのアプリケーションを持つ) です。XP から Win 7 に移行しようとしていますが、IIS フォルダーへのアクセスでいくつかの問題に直面しています。win 7 で仮想ディレクトリ フォルダにアクセスするようにアドバイスしてください。どのコード例も大いに役立ちます。

*エラー: *Sy​​stem.Runtime.InteropServices.COMException (0x80070005): アクセスが拒否されました。

4

1 に答える 1

1

仮想ディレクトリへのアクセスに使用しているコードを確認すると便利ですが、コードを変更する前に、問題がセキュリティ権限に起因するものかどうかを確認してください。Windows 7 で仮想ディレクトリに関連付けられた物理ディレクトリにアクセスしようとしている場合、コンソール アプリを十分な権限なしで実行している可能性があります。管理者権限で実行してみてください。

コードを確認したところ、ディレクトリ サービスを使用して IIS 7 にアクセスしていることがわかりました。そのマシンにIIS メタベースと IIS 6 構成の互換性がインストールされていることを確認してください。Windows 7 では、[コントロール パネル] -> [プログラム] -> [プログラムと機能] -> [Windows の機能を無効にする] で見つけることができます。次に、[インターネット インフォメーション サービス] -> [Web 管理ツール] -> [IIS 6 管理の互換性] に移動します。IIS メタベースと IIS 6 構成の互換性のチェックを有効にする必要があります。

ただし、コードから IIS 7 にアクセスして管理する方法として、 Microsoft.Web.Administrationライブラリから入手できるIIS Management APIを使用することをお勧めします。次の質問で、必要な同じタスクを実行する方法を示す例を見ることができます。

IIS仮想ディレクトリとWebアプリケーションの物理パスをC#コードで取得するには?

于 2013-10-01T07:59:37.590 に答える