web-dev-qa-db-ja.com

IIS expressでの仮想ディレクトリの作成

IIS expressに仮想ディレクトリを作成する方法はありますか? Cassiniがこれを実行できないことを知っています。IISのフルバージョンを使用せずにこれを実行できると便利です。

これまでのところ、次のようにIIS expressでローカルにアプリケーションを参照できます。

http:// localhost:1132 /

私がやりたいのは、「OffSiteStuff」という仮想ディレクトリを作成し、「c:\ offsitestuff」などのCドライブ上の特定の場所をポイントし、そのフォルダー内のアイテムを次のように参照することです。

http:// localhost:1132/OffSiteStuff/UserUploadedImage.jpg

私は自分のサイト内のフォルダーでこれを行うことができ、IIS Expressを使用することができることを知っています、または、その点については、昔ながらのCassiniですが、このフォルダーにはユーザーがアップロードした画像が保存され、私は本当にしたくないこれらの画像をアプリケーションファイルと混在させます。

もう1つの「大規模な」ソリューションは、オフサイトコンテンツを使用する機能をデバッグするたびに、完全なServer 2008 IIS 7.5インスタンスにサイトを展開することですが、それも少し面倒です。

<System.WebServer /> Web config要素でこれを行う方法はありますか?

121
John Hoge

IIS Express構成は、applicationhost.configによって管理されます。
で見つけることができます

Users\<ユーザー名>\Documents\IISExpress\configフォルダー。

内部には、各IIS Express構成サイトのセクションを保持するサイトセクションがあります。

次のようなサイトセクションを追加(または変更)します。

<site name="WebSiteWithVirtualDirectory" id="20">
   <application path="/" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/" physicalPath="c:\temp\website1" />
   </application>
   <application path="/OffSiteStuff" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/" physicalPath="d:\temp\SubFolderApp" />
   </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:1132:localhost" />
   </bindings>
</site>

実際には、仮想ディレクトリごとにサイトに新しいアプリケーションタグを追加する必要があります。仮想ディレクトリに異なる構成(たとえば、異なる.Net Frameworkバージョン)を設定できるため、柔軟性が大幅に向上します。

EDITより洗練されたソリューションを示すFevziApaydınに感謝します。

Applicationタグに1つ以上のvirtualDirectoryタグを追加することで、同じ結果を得ることができます。

<site name="WebSiteWithVirtualDirectory" id="20">
   <application path="/" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/" physicalPath="c:\temp\website1" />
     <virtualDirectory path="/OffSiteStuff" physicalPath="d:\temp\SubFolderApp" />
   </application>
    <bindings>
      <binding protocol="http" bindingInformation="*:1132:localhost" />
   </bindings>
</site>

参照:

126
Be.St.

@ Be.St。のアプローチは本当ですが、不完全です。間違った部分を修正して彼の説明をコピーしています。

IIS Express構成は、applicationhost.configによって管理されます。
で見つけることができます

Users\<ユーザー名>\Documents\IISExpress\configフォルダー。

内部には、各IIS Express構成サイトのセクションを保持するサイトセクションがあります。

次のようなサイトセクションを追加(または変更)します。

<site name="WebSiteWithVirtualDirectory" id="20">
   <application path="/" applicationPool="Clr4IntegratedAppPool">
     <virtualDirectory path="/" physicalPath="c:\temp\website1" />
     <virtualDirectory path="/OffSiteStuff" physicalPath="d:\temp\SubFolderApp" />
   </application>
   <bindings>
      <binding protocol="http" bindingInformation="*:1132:localhost" />
   </bindings>
</site>

新しいアプリケーションブロックを追加する代わりに、新しいvirtualDirectory要素をアプリケーションの親要素に追加するだけです。

編集-Visual Studio 2015

ApplicationHost.configファイルを探していて、VS2015を使用している場合は、次の場所にあります。

[solution_directory] ​​/。vs/config/applicationHost.config

91
Fevzi Apaydın

VS2013では、次の手順でこれを行いました。

1. Webアプリケーションプロジェクトを右クリックして、[プロパティ]をクリックします。

2.プロパティページの[Web]タブを表示します

3.「IIS Express」がドロップダウンのデフォルトの選択であるサーバーの下で、「Project Url」でポート番号を使用してURLを適切なものに変更します。たとえば、ポート番号を削除し、localhostの後に「/ MVCDemo4」を追加しました。

4.「仮想ディレクトリの作成」ボタンをクリックします。

5.プロジェクトを実行すると、新しいURLが使用されます

6
user2765861

Visual Studio 2013(Proエディション以上が必要な場合があります)を使用している場合、IIS Express(ファイルベース)Webサイトを右クリックして仮想ディレクトリを追加できましたソリューションエクスプローラーをクリックし、[追加]> [新しい仮想ディレクトリ]をクリックします。ここで説明した手動の方法と同様に、これによりapplicationhost.configファイルにエントリが追加されました。

2
Bryan B

新しいオプションは、IIS ExpressのJexus Managerです。

https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/

これは、使用方法を知っている管理ツールです。

1
Lex Li

[project] .vs\config\applicationhost.configファイルにエントリを作成する必要がありました。

これ以前は、コードからではなくデプロイメントから機能していました。

0
TheJoe

SBS環境ではアクセスできないファイル自体がありました。

Configフォルダー内のファイルを削除し(開くことができない場合!)、自分のローカルPC上のフォルダーのコピーに置き換えます。

私のためにそれを修正しました:)

0
NicoJuicy