WebSurfer's Home

トップ > Blog 1   |   Login
Filter by APML

ApplicationHost.config の場所

by WebSurfer 23. April 2017 13:47

Visual Studio で ASP.NET Web アプリを開発するときに利用できる IIS Express 用の ApplicationHost.config ファイルはどこにあるかという話を書きます。

(注:Windows 10 64-bit に Visual Studio 2015 Community Update 3 をインストールするときに一緒にインストールされた IIS 10.0 Express の話です)

ちなみに、IIS 用の ApplicationHost.config ファイルは、TexhNet の記事「ApplicationHost.configの紹介」に書いてある通り、system32¥inetsrv¥config フォルダにあります。

IIS Express は IIS 用の ApplicationHost.config ファイルを共有しません。別の場所に別の ApplicationHost.config ファイルが存在し、それを使用します。

自分の PC には Visual Studio 2010 Professional SP1, Visual Studio Community 2015 Update 3, Visual Studio Community 2019 がインストールされています。そのテンプレートを使ってデフォルト設定で Web アプリ作成した場合、Visual Studio から[デバッグの開始(S)]または[デバッグなしで開始(H)]で Web アプリを起動し、IIS Express 上で実行する場合、使用される ApplicationHost.config ファイルは以下の通りとなります。

(注:他のバージョンの Visual Studio, IIS Express の場合は不明です。また、以下はデフォルトの場合で、設定によっては変更できるかもしれません・・・が、未確認です)

(1) VS2010

OneDrive の Documents\IISExpress\config フォルダ内の ApplicationHost.config ファイル。(OneDrive を使わない場合は C:\Users\ユーザー名\Documents\IISExpress\config フォルダ)

ApplicationHost.config

(2) VS2015

各ソリューションのフォルダ内の ApplicationHost.config ファイル。下の画像の例を見てください。Mvc5App がソリューションのフォルダで、各ソリューションごとに別のファイルが使用されます。

ApplicationHost.config

MSDN Blog の記事「IIS Expressの仮想ディレクトリを applicationhost.config から削除する方法」によると、上記 (1) の Documents フォルダ下の ApplicationHost.config ファイルが、全 Web アプリで共用されるようなことが書かれていますが、これは少なくとも自分の PC にインストールしてある VS2015 には当てはまらないようです。

実は、そのことを知らなくて、上記 (1) の ApplicationHost.config ファイルの設定をどのように変えても、VS2015 から IIS Express で起動する Web アプリに設定変更が反映されないのに、2 時間ほど悩んだのは内緒です。(笑)

(3) VS2019

VS2015 とは少々場所が違うので注意してください。下の画像の例を見てください。一番上の WebApplication1 がソリューションのフォルダです。(注: プロジェクトを作成する際[ソリューションとプロジェクトを同じディレクトリに配置する(D)]にチェックを入れるとフォルダの構成が下の例とは変わってきます)

VS2019 の ApplicationHost.config

アプリケーションが使う ApplicationHost.config ファイルが格納されているフォルダは、VS2015 と違って .vs フォルダ直下の config フォルダではなく、.vs\WebApplication1\config フォルダになります。

ASP.NET Core 3.1 アプリでも Visual Studio Community 2019 から実行した場合は IIS Express を使ってインプロセスホスティングモデルで動きますので ApplicationHost.config ファイルを使用しています。場所は .NET Framework 版のアプリと同じです。

インプロセスホスティングモデルの詳細については、別の記事「ASP.NET Core アプリの Web サーバー」を見てください。

Tags:

DevelopmentTools

ブラウザーリンク

by WebSurfer 25. February 2017 15:44

先日買った Windows 10 Pro 64-bit のノート PC に OS が Vista の旧マシンでは使えなかった Visual Studio 2015 Communuty をインストールして使い始めました。

手始めに、テンプレートを使ってインターネット上でフォーム認証を使う Web サイトプロジェクトを作って、Fiddler で要求 / 応答をキャプチャしてみると、以下の画像のように localhost との正体不明な通信が行われています。(驚)

Fiddler によるキャプチャ

(ちなみに、vortex.data.microsoft.com, urs.smartscreen.microsoft.com の正体は分かっています。Tunnel to とは Fiddler が HTTP CONNECT 要求を受けてブラウザとサーバー間で直接通信するようにトンネルを開けたということだそうです)

一体これは何なんだと驚いて、URL にある browserLink をキーワードにググって調べてみると、MSDN Blog の記事に「クロスブラウザのテストに Visual Studio 2013 のブラウザーリンクをどうぞ」というのが見つかりました。

ブラウザーリンクというのは、Visual Studio 2013 から搭載された新機能で、IE, Forefox, Chrome などの複数のブラウザを同時に立ち上げて表示させたり、Visual Studio 上でのコードの修正を複数のブラウザに同時に反映させたりする機能だそうです。

そのために、Visual Studio が HTML ソースにスクリプトを追加し、そのスクリプトによって Visual Studio と各ブラウザが通信を行っているそうです。その結果が、上の画像にある localhost との正体不明な通信だったようです。

MSDN Blog の記事にも書いてありますが、ブラウザーリンクは Visual Studio の設定で無効にできます。

具体的には、上の画像の ▼ 印をクリックすると表示されるドロップダウンメニューで[Browser link を有効にする]のチェックを外します。

早速チェックを外して試してみると、HTML ソースへのスクリプトの追加はなくなり、localhost との正体不明な通信も行われなくなったのが確認できました。

Visual Studio 2010 から 2015、ASP.NET 4 から 4.5 とそれほど長くはない間に、ブラウザーリンク以外にも、いろいろな進化があったようです。

その進化に完全に取り残されていると感じる今日この頃です。(汗)

Tags:

DevelopmentTools

Visual Studio で Edge 利用

by WebSurfer 18. February 2017 14:26

先日買った Windows 10 Pro 64-bit のノート PC に旧マシンから開発環境を移していますが、Visual Studio で開発中の Web アプリを Edge で開けないという問題に遭遇しました。一応解決したので、自分が行った解決方法を備忘録として書いておきます。

Windows 10 には Microsoft Edge という新しいブラウザが標準として搭載されています。

その Edge を使うと、Visual Studio から開発中の Web アプリを開けないだけでなく、Edge を単独で立ち上げてアドレスバーにローカル IIS で動くように設定した Web アプリの URL を入力しても表示されません。

ググって調べてみると、Edge はセキュリティが厳しくなって、ローカルホスト(ホスト名に関係なく IP アドレス 127.0.0.1 がアクセス先のホスト)へのアクセスが制限されているそうです。

解決策として、Edge のアドレスバーに about:flags と入力して表示される「開発者向け設定」で[ローカルホスト ループバックを許可する]にチェックを入れて Edge を再起動するという記事がいくつか見つかりました。

ローカルホストループバックの許可

で、早速自分もやってみました・・・が、ダメでした。(涙) 依然として Edge はローカルホストにはアクセスできません。当然 Visual Studio からローカルホストの Web アプリを開くこともできません。

さらにググって調べてみると、コントロールパネルから開く「インターネットオプション」で、ローカルイントラネットゾーンに含めるサイトの定義を変更するという記事を見つけました。

イントラネット Web サイトの設定

具体的には上の画像のように、[セキュリティ]タブ ⇒[ローカルイントラネット]⇒[サイト(S)]で表示される「ローカルイントラネット」ダイアログで[ほかのゾーンに指定されてないローカル (イントラネット) のサイトをすべて含める(Z)]のチェックを外します。

結果、Visual Studio 2010 / 2015 ともローカルホストの Web アプリを Edge で開くことができるようになりました。もちろん Edge を単独で立ち上げてアドレスバーにローカルホストの URL を入力しても表示できます。

Edge でのローカルホストサイト表示

上の画像は、Visual Studio 2015 のテンプレートを使って自動生成させたインターネット用 Web サイトアプリケーションです。

ローカル IIS 上でホスト名 websiteproject.com で動くように設定し、hosts ファイルでそのホスト名の IP アドレスを 127.0.0.1 に設定し、Visual Studio 2015 でサイトを開いて実行させています。

(ググって調べた記事の中に CheckNetIsolation.exe コマンドを使って設定するというものがいくつかありました。Edge のアドレスバーに about:flags として設定できなかった古いバージョンではそれを使っていたようです。なお、CheckNetIsolation.exe コマンドが「インターネットオプション」の変更まで行ってくれるかどうかは分かりません)

Tags: , ,

DevelopmentTools

About this blog

2010年5月にこのブログを立ち上げました。その後 ブログ2 を追加し、ここは ASP.NET 関係のトピックス、ブログ2はそれ以外のトピックスに分けました。

Calendar

<<  March 2021  >>
MoTuWeThFrSaSu
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar