WebSurfer's Home

トップ > Blog 1   |   ログイン
APMLフィルター

Visual Studio で Edge 利用

by WebSurfer 2017年2月18日 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

IIS Express をインストールしました

by WebSurfer 2012年10月8日 16:10

今さらながらですが、IIS 7.5 Express を Microsoft の Download Center から入手してインストールして使ってみました。

IIS Express

IIS Express の概要の説明は、ここに書くまでもないので省略します。知りたい方は、ScottGu 氏のブログの翻訳 IIS Express の紹介 を見てください。手抜きですみません。(笑) 

インストールの仕方も、ここに書くまでもないので省略します。ダウンロードしたファイルをエクスプローラーで探して、それをダブルクリックすれば自動的にインストールされます。

ただし、インストールしただけでは Visual Studio 2010 SP1 から自動的に使えるようにはなりませんので注意してください。以下の画像にあるように、ソリューションエクスプローラーで、プロジェクトを右クリックして出てくるコンテキストメニューで、[IIS Express を使用する (U)...]に設定してやる必要があります。その他の詳細については、ScottGu 氏の別のブログ VS 2010 SP1 (Beta) and IIS Express を参考にしてください。

IIS Express を使用する

ところで、一番気になっていた IIS とワーカープロセスのアカウントですが、少なくともデフォルトでは、ASP.NET 開発サーバーと同じでした。即ち、その PC にログインしているユーザーのアカウントになります。

少なくとも自分が探した限りでは、IIS Express のワーカープロセスのアカウントを、IIS と同じにするオプションは見つかりませんでした。なので、ASP.NET 開発サーバーでは動いていたのが IIS では動かないという問題は、IIS Express でも起こり得るので注意が必要です。

ちなみに、IIS の匿名ユーザーアカウント、ワーカープロセスのアカウント/グループについては以下のページを参照してください。

IIS 7.0 での組み込みユーザーとグループ アカウントとは

Application Pool Identities

IIS 7 のアクセス許可

ASP.NET 開発サーバーおよび IIS Express の場合は、上記のページで説明されている IIS のアカウント/グループが、すべて PC にログインしているユーザーのものになります。

その他、気をつけなければならないのがアプリケーション名の設定です。具体的にどういうことかと言うと、以下のとおりです。

Web サイトプロジェクトで、例えば、物理パス C:\WebSite\AppDirectory に Web アプリケーションがあるとします。

Visual Studio から [ファイル(F)] ⇒ [Web サイトを開く(E)] で表示されるダイアログから Web アプリケーションを開いて、そのルート直下の Default.aspx を要求する場合、デフォルトでは以下のような URL になります。

ASP.NET 開発サーバ: http://localhost:xxxxx/AppDirectory/Default.aspx
IIS Express: http://localhost:xxxxx/Default.aspx
ローカルIIS: http://<サイト名>/<アプリ名のエイリアス>/Default.aspx

「ASP.NET 開発サーバ」と「ローカル IIS」の場合は AppDirectory と <アプリ名のエ���リアス> の名前を同じに設定すれば "/<アプリ名のエイリアス>/default.aspx" というサイトルート相対パスが使えます。

ところが、「IIS Express」の場合は "/<アプリ名のエイリアス>/default.aspx" というサイトルート相対パスは使えません。パスの設定によってはリンクが切れて、「ASP.NET 開発サーバー」や「ローカル IIS」で動いていたものが「IIS Express」では動かない(または、その逆)ということが起こり得ます。

Web アプリケーションプロジェクトの場合は「IIS Express」を使って /<アプリ名のエイリアス>/default.aspx というように設定する方法があるのは見つけましたが、Web サイトプロジェクトの方はギブアップしました。

なので、自分が設定する方法を知らないだけという可能性は否定し切れません。(笑)

Tags:

DevelopmentTools

SQL Server Express 用 Profiler

by WebSurfer 2011年8月8日 23:26

SQL Server を利用したアプリケーションの開発時に、アプリケーションから SQL Server にどのようなクエリが発行されているかを確認したいことがあると思います。

SQL Server Standard Edition 以上には SQL Server Profiler というツールが付属していて、GUI 環境で SQL Server のインスタンスで発生するイベントを収集して表示させることができるそうです。

しかし、残念ながら Express Edition には SQL Server Profiler は付属していません。

ググって調べてみると、AnjLab というロシアのソフト会社が無償で提供している SQL Server 2005/2008 Express Profiler というツールを見つけましたので使ってみました。

インストールは、上記のサイトからダウロードした zip ファイルに SqlExpressProfiler.msi という Windows インストーラーパッケージが含まれているので、それを実行するだけです。

設定方法が書いてあるドキュメントが見つからず、正しいかどうかイマイチ不安ですが、以下のように設定しました。なお、SQL Server は 2008 Express Edition で、開発マシンにローカルにインストールしてあります。認証方式は Windows 認証です。

(1) メニューバーで File --> New Trace を選択。表示される Trace Properties ダイアログの General タブで以下のように設定します。

SQL Profiler の Trace Properties ダイアログの General タブ設定

(2) Events タブの設定がよく分かりませんでしたが、開発中のアプリケーションから実行されるクエリの内容を確認したい場合は、SQLStmtStarting と SPStmtStarting にチェックを入れればよさそうです。

SQL Profiler の Trace Properties ダイアログの Events タブ設定

(3) Trace Properties ダイアログの Run ボタンをクリックするとダイアログが閉じて、トレース状況が表示されます。下の画像は、先の記事 SQL キャッシュ依存関係 で紹介したアプリケーションが、SQL Server にポーリングをかけているところです。

SQL Profiler のトレース状況

というわけで、アプリケーションが発行したクエリを確認するだけにしか使っていませんが、その目的であれば問題なく使えました。

Tags:

DevelopmentTools

About this blog

2010年5月にこのブログを立ち上げました。主に ASP.NET Web アプリ関係の記事です。

Calendar

<<  2024年4月  >>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

View posts in large calendar