WebSurfer's Home

トップ > Blog 1   |   Login
Filter by APML

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

by WebSurfer 8. October 2012 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 8. August 2011 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

Fiddler のお勧め

by WebSurfer 25. May 2011 00:05

今さらながらですが、HTTP トラフィックのパケットをキャプチャするなら Fiddler がお勧めという話です。

Fiddler のロゴ

Fiddler は、IE のような WinINET ベースのアプリケーションと Internet の間のプロキシとして、HTTP トラフィックを自動的にキャプチャしてくれるそうです。

以前は Wireshark というフリーのツールを使っていました(今も時々使っていますが)。これはこれでトラブルシューティングに重宝していましたが、自分の知る限り、少なくともデフォルトの設定では localhost トラフィックをキャプチャすることができませんので、ローカルの IIS とローカルのブラウザを使って行う Web アプリ開発には使い難いという問題があります。

何か方法は無いか調べてみましたが、本家のサイト Loopback に、"... you definitely cannot do so on Solaris, HP-UX, or Windows." とか "You can't capture on the local loopback address 127.0.0.1!" などと書いてあったので諦めました。そこまではっきり言われて、それ以上調べる根性はないです。(笑)

その点、以前は Fiddler も問題ありでした。IE と .NET Framework(Fiddler は .NET ベースのアプリです)は localhost の要求をプロキシを通して送らないようにハードコードされているそうで、プロキシである Fiddler も特別な設定なしでは localhost トラフィックのキャプチャはできなかったそうです。

Fiddler を起動したところ

でも、IE9 がリリースされて事情が変わりました。IE9 と組み合わせると localhost でも特別な設定なしでキャプチャできるという話を聞いて(本家のページ Configuring clients 参照)、早速使ってみることにしました。

使ってみると、localhost トラフィックのキャプチャができるというのはやはり便利です。面倒な IE のオプションのプロキシ設定も、Fiddler を立ち上げると自動的にやってくれます。

その他、画像を見れば分かると思いますが(クリックすると拡大画像が表示されます)、Headers, TextView, ImageView, HexView などを選んで見ることができるのもいいです。

少なくとも Web アプリ開発時の HTTP トラフィックのキャプチャに限っては、もう Wireshark に戻る気はしませんといったところです。

なお、Firefox でも Fiddler を使用できます。Firefox は WinINET ベースのアプリケーションではないはずだけど・・・そもそも Fiddler はプロキシなんだから関係ないのか・・・など詳しいことは不明です。というか、調べる気がないです。(笑)

Firefox のオプション設定でプロキシの設定をすれば Fiddler で Firefox のトラフィックをキャプチャできるようになります。いちいち設定するのは面倒なので、自動的に設定してくれる FiddlerHook という Firefox のアドオンも用意されています。

自分が試した限りでは、Fiddler 本体をダウンロードしてインストールすれば、FiddlerHook アドオンも自動的にインストールされました。(自動的にインストールされても無効化されているかもしれません。詳しくは下の「2015/12/21 追記」を見て下さい)

(2016/8/24 追記:現時点でダウンロードできる Fiddler2 v2.6.2.3 および Fiddler4 v4.6.2.32002 には Fiddlerhook は含まれていません。新しいバージョンの Firefox(48.0.1 で確認)では Fiddlerhook を有効にできなくなったという理由かもしれません。Fiddlerhook なしで Firefox で Fiddler を使う方法はこの記事の下の方の「2016/8/24 追記」を見てください)

FiddlerHook を利用すると、localhost トラフィックをキャプチャできないという問題に悩む必要はなくなるように、自動的に設定してくれるそうです。

******** 2015/12/21 追記 ********

注意:
Firefox のどのバージョンからかは不明ですが、少なくとも 2016/8/24 時点での最新版 48.0.1 では、下に書いた方法では Fiddlerhook を有効にできなくなっています。代わりの対処方法はこの記事の下の方の「2016/8/24 追記」を見てください。

2015/12/21 時点の最新バージョン Firefox 43.0.1, Fiddler v4.6.1.5, FiddlerHook 2.6.0.4 では FiddlerHook がアドオンとして署名されてないとのことで無効化されています。(署名についての詳細は Firefox のアドオン署名を見てください)

無効化されたアドオン

将来署名されて使えるようになるのかもしれませんが、それまで待てない場合は上の記事の「アドオンの署名を上書きする (上級ユーザ向け)」に書いてあるように xpinstall.signatures.required 設定の値を false に変更することで書名のないアドオンを有効にすることができます。(セキュリティ上のリスクが伴いますので注意してください)

署名不要に設定

その後、Firefox を再起動すると書名のないアドオンも有効になり、タイトルバーのアイコンから Fiddler を起動して要求 / 応答をキャプチャできるようになります。

有効になった FiddlerHook

なお、Fiddler は Chrome でも使えます。Chrome の場合は、今のところ、IE と同様に何も設定しなくても Fiddler を起動しておけば要求 / 応答をキャプチャしてくれます。何故 Chrome は何も設定しなくても使えるのかは分かりません。(汗)

******** 2016/8/24 追記 ********

Firefox のどのバージョンからかは不明ですが、少なくとも 2016/8/24 時点での最新版 48.0.1 では上の「2015/12/21 追記」に書いた方法では Fiddlerhook を有効にできません。

Fiddlerhook を有効にできなくても、Firefox のプロキシの設定で Fiddler を使うことができるようになりますので、以下にその方法を書いておきます。

メニューバーの[ツール(T)]⇒[オプション(O)]でオプション画面を開き、その中の[詳細]タブをクリック、詳細画面の[ネットワーク]タブをクリック、[接続設定(E)...]ボタンをクリックすると以下のダイアログが出てきます。

Firefox のプロキシ設定

上の画像の赤枠で示したように[システムのプロキシ設定を利用する(U)]を選択すれば Fiddler を使えるようになります。

もし、上の「2015/12/21 追記」で書いたように xpinstall.signatures.required 設定の値を false に設定していたら、セキュリティ上のリスクががありますので、ture に戻しておくことをお勧めします。

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