コマンド ラインから aspnet_compiler を使用して、IIS7 の既定の Web サイトで実行されている Web アプリケーションをビルドおよび公開しようとしています。IIS メタベース パスを指定するための -m 引数の正しい構文を見つけるのに苦労しています。
すべてのドキュメントは、"LM/W3SVC/1/Root" という形式の IIS6 メタベース パスを参照しています。IIS7 メタベース パスが "MACHINE/WEBROOT/APPHOST/Default Web Site" のようになっている必要があることを示すこの情報を見つけました。
実際のコマンドは次のようになります。
aspnet_compiler -nologo -m "MACHINE/WEBROOT/APPHOST/Default Web Site/" \\productionwebserver\inetpub\websitefolder\
ただし、これにより次のエラーが発生します:エラー 1002: 'MACHINE/WEBROOT/APPHOST/Default Web Site/' は適切な形式の IIS メタベース パスではありません。
私の既定の Web サイトは「既定の Web サイト」と呼ばれます。また、メタベース パスの代わりに仮想パスと物理パスを指定する構文を使用して調査しました。たとえば、次のようになります。
aspnet_compiler -nologo -v / -p ".."
(このコマンド ファイルは、Web サイト プロジェクト フォルダーのサブフォルダーにあります)
これにより、次のエラーが発生します。エラー ASPCONFIG: アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されたセクションを使用するとエラーになります。このエラーは、IIS で仮想ディレクトリがアプリケーションとして構成されていないことが原因である可能性があります。
Web サイトは VS2010 内から正常にビルドされます。