IIS 7.5(Express)applicationhost.config:virtualDirectoryのphysicalPathを相対パスにすることはできますか?


9

applicationhost.configIIS 7.5 Expressのサイトを構成しています:

<site name="default" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_BIN%\..\Somewhere\Else" />
                                            <!-- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -->
    </application>
    ...
</site>

示されているように相対パスを指定しても機能しないようで、HTTPにつながることがわかりました500.19 Internal Server Error。IISはさらに0x8007007b、エラーコードを報告します。これは、グーグルの後で、無効なファイルパス構文を示しているようです。

私のサイトのルートに相対物理パスを使用できるように、このエラーを回避する方法はありますか?

回答:


6

残念だけど違う。それは完全な物理パスでなければなりません。サイトパスを頻繁に変更する予定がない限り、静的パスは問題になりません。パスを別のサイトインスタンスに頻繁に変更する場合は、appcmdを使用して変更をスクリプト化し、すべてのサブフォルダーを取得することを検討してください。


1
たとえば、Vdirがソース管理にチェックインできる構成ファイルに関連している可能性がある場合に分岐する場合など、開発に適しています。これを行う方法に関するアイデアはありますか?
PilotBob 2015

3
残念ながら、現在のバージョンのIISでは相対パスはサポートされていないため、最もクリーンな解決策は、各マシンで同じパスを使用することです。マシンごとに異なるパスが必要な場合(私は開発マシンを想定しています)、環境変数を試すことができます。IISで使用できるようにシステム環境変数を作成し、それを個々のシステムのパスのルートに使用します。
スコットフォーサイス-MVP 2015年

2
しかし、いくつかの環境変数がサポートされているようです<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
Uwe Keim

@UweKeimそうですね、これはIISの現在のバージョンで動作します。IIS 10は現在、physicalPathの変数をサポートしています。%IIS_SITES_HOME%はIIS Express用です。その変数は、IISの完全版には存在しません。ただし、他のシステム変数は機能します。
スコットフォーサイス-MVP 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.