アーカイブ

Archive for the ‘IIS’ Category

ARRのスナップインはWindows Server 2012 R2の管理ツールには表示されない。

2016年6月16日 コメントを残す

時たまサーバーを一気に作る機会があって、以前作った手順書を更新しながら作業しているんですが、OSのバージョンが変わるといろいろ変わってくるところもあります。

以前Windows Server 2008 R2 IIS7.5 と Tomcat 7をARRで連携という記事を投稿しましたが、Windows Server 2012 R2で同じことをやろうとしたらちょっと、、、大分ハマったのでメモ。

あれ?どこ行った?

ARRをWebPIからインストールして、さあARRの設定を!!と思ったら、管理ツールにApplication Request Routing Cacheのアイコンが見当たらない。。。

 

イベント・ログを見るとこんなログが、、、あれ?これ以前見たこと有るぞ?ということでARRを手動でインストールしたけれど、状況は変わらず、、、

IISMANAGER_MODULE_INITIALIZATION_THREW_EXCEPTION

型 "ApplicationRequestRouting" のモジュール "Microsoft.Web.Management.Arr.ArrModule, Microsoft.Web.Management.Arr.Client, Version=7.2.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" の Initialize メソッドが例外を発生させました。

例外:System.IO.FileNotFoundException: ファイルまたはアセンブリ ‘Microsoft.Web.Management.WebFarmClient, Version=7.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
ファイル名 ‘Microsoft.Web.Management.WebFarmClient, Version=7.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35′ です。’Microsoft.Web.Management.WebFarmClient, Version=7.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’
   場所 Microsoft.Web.Management.Arr.ArrModule.Initialize(IServiceProvider serviceProvider, ModuleInfo moduleInfo)
   場所 Microsoft.Web.Management.Client.Connection.Initialize(WebManagementInfo webManagementInfo)

そっちか!!

Webで似たような事例を探してたら、、、

http://forums.iis.net/t/1159733.aspx?Problems+in+locating+ARR

For the record, this is still broken in IIS8 / ARR 3.0; the Application Request Routing Cache element does not show up in the "Computer Management" MMC window for IIS, but DOES show up in the separate application Internet Information Services (IIS) Manager console.

管理ツールのにスナップインされたIISマネージャーだと表示されないので、個別で表示してみろとのお告げが!!

いた!!

カテゴリー:IIS タグ: ,

dotMemory を利用してリモートコンピューターのメモリープロファイリングを行う

2014年4月25日 3件のコメント

JetBrainsが販売しているdotTraceやdotMemoryといったプロファインリググツールは、パフォーマンスチューニングやメモリー関連の不具合の調査に欠かせないツールですが、こいつらはローカルだけでなくリモートのコンピューターに対してもプロファイリングを行うことができます。

今回はdotMemoryでリモートサーバーのASP.NETプログラムのメモリープロファイリングを行う方法を紹介します。

リモートプロファイリングに関してはdotMemoryのオンラインヘルプに記述があるので合わせて確認してみてください。

dotMemory Web Help > Profiling Process > Starting Remote Profiling Process

http://www.jetbrains.com/dotmemory/webhelp/Starting_Remote_Profiling_Process.html

image

1.プロファイリング用のエージェントを対象のコンピューターにコピーする。

dotMemoryのインストールディレクトリにあるRemoteフォルダーをプロファイリング対象のコンピューターの特定フォルダー(c:\dotMemory\Remoteとか)にコピーします。dotMemoryを標準インストールで入れた場合、Remoteフォルダーはココにあると思います。

%ProgramFiles(x86)%\JetBrains\dotMemory\v4.0\Bin\Remote

image

2.リモートコンピューター側でエージェントを起動する。

管理者権限のあるユーザーでプロファイリングを行いたいPC(or サーバー)にログインし、先ほどコピーしたRemoteフォルダーにあるRemoteAgent.exeを起動します。実行すると下記のURLでプロファイリング用のWebサービスがホストされます。環境によってはファイアーウォールの警告が出るのでRemoteAgentを例外に指定してあげてください。デフォルトでは下記のURLがリモートエージェントによってホストされます。

http://<server&gt;:9000/RemoteAgent/AgentService.asmx

ホストするサービスのポート番号などを変えたい場合は、RemoteAgent.exeをコマンドプロンプトから実行し、コマンドラインスイッチに/pや/port=VALUEを指定してエージェントを起動します。

エージェントが受け入れるスイッチの一覧はRemoteAgent.exe /hで確認できます。

image

3.dotMemoryからリモートプロファイリングを開始する。

dotMemoryをインストールしたPCから先ほどリモートエージェントを起動したPCに対してリモートプロファイルを開始します。dotMemoryを起動し、IIS Applicationのプロファイルを開始してください。

image

プロファイルの設定ダイアログが表示されるので、Profile on remote computerのリンクをクリックして、リモートコンピューターで起動したRemoteAgentのURLを指定します。

image image

エージェントの接続設定が成功したら、Runボタンをクリックしてプロファイルを開始します。

image

4.スナップショットをとって、長期間保存されているメモリーを確認してみる。

プロファイルが開始されたら、右上にあるGet Snapshotボタンをクリックして現在のメモリー状況のスナップショットを取ります。Memory Snapshotsに作成したスナップショットの一覧が表示されるので、確認したいスナップショットを開きHeaps FragmentationのDetailsリンクをクリックしてみましょう。

image image

スナップショットで収集したオブジェクトが表示されます。Group by Generationsでは、世代ごとに確保しているオブジェクトのサマリーを確認できます。LOHのグラフをダブルクリックして、Call Tree Icicle Chartを表示すると、LOHに確保されたオブジェクトを確認することができます。

image image

便利なのでいつのまにやら、jetBrainsの.NET関連ツールはひと通り個人で揃えてしまいました。。。出費が痛い。

ARR 3.0 Beta

2012年12月7日 コメントを残す

つい先日ARR 2.5を使ったTomcatとの連携のポストをしましたが、ARR 3.0のBetaが公開されたそうです。

Announcing Application Request Router 3.0 Beta!

大きな対応としては、Web SocketとHealth Checkへの対応があるようです。Web Socketは今のところ使う予定は無いんですが、ルーティング先のヘルスチェック(存在確認、生存確認)ができるようになると嬉しいですね。

カテゴリー:インフラ, IIS, Windows タグ:

IISの設定情報の保存先

2012年12月4日 コメントを残す

いつも忘れて調べるのでメモ。

ココ→ %WinDir%\System32\Inetsrv\Config

IIS 7.0 コンフィギュレーション リファレンス

IIS7からは、仮想ディレクトリーの設定やWebアプリケーションの設定、AppPoolやマシーンキーなど、IISマネージャーで設定した項目はすべてサーバーのXMLファイルに保存されています。ロードバランサー環境で全く同じ構成のWebサーバーが複数台存在する場合は、一つ一つのWebサーバーで仮想ディレクトリーの設定をするよりもこのXMLファイルをかくサーバーに撒いたほうが管理が楽です。

カテゴリー:インフラ, IIS タグ: ,

メモ IIS 7.5 と Tomcat 7の連携

2012年12月4日 コメントを残す

お仕事で、IISのURL Rewriteモジュールを使う機会があったのでメモメモ

TomcatとIISを連携させる(一度IISがバインドしている80ポートでリクエストを受けた後に、Tomcatがバインドしている8080へリクエストをフォワードする)場合は、Apache Foundationが提供するisap_redirectを使うわけですが、設定を見ていたらレジストリーいじったり設定ファイルを作ったりと面倒なので、IIS 7の URL Rewriteモジュールでできないか調査してみた。

Application Request Routing(ARR)のインストール

ARRInstall the extensionsのリンクから、WebPIをダウンロードしARR一式インストールしましょう。URL書き換えモジュールといっておきながら、いきなり違うものをダウンロードしますが、IISをリバースプロキシとしてTomcatの8080にフォワードするためには、URL RewriteモジュールとARRの両方が必要となります。ARRのインストーラーには下記4モジュールが含まれているため、こいつをインストールすれば必要なものはすべてインストールされるという寸法です。

  • URL Rewrite 2.0
  • Web Farm Framework 1.1
  • Application Request Routing 2.5
  • External Cache 1.0
  • 上記の通りARRはWeb Pralform Installerからもインストールできますが、こちらのリンク(How to install Application Request Routing (ARR) 2.5 without Web Platform Installer (WebPI))からそれぞれのモジュールを直接ダウンロードしてインストールすることもできます。というか、WebPIを使ってインストールしたら、インストール中にこんなエラーが出たり、

DownloadManager Error: 0 : Install return code for product ‘Application Request Routing 2.5 用の KB 2589179’ is Failure

IISマネージャーを開いたらARRが表示されず、イベントログにこんなログが出力されたので、セットアップモジュールを個別にダウンロードしてインストールを行いました。

IISMANAGER_MODULE_INITIALIZATION_THREW_EXCEPTION

型 "ApplicationRequestRouting" のモジュール "Microsoft.Web.Management.Arr.ArrModule, Microsoft.Web.Management.Arr.Client, Version=7.2.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" の Initialize メソッドが例外を発生させました。

例外:System.IO.FileNotFoundException: ファイルまたはアセンブリ ‘Microsoft.Web.Management.WebFarmClient, Version=7.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
ファイル名 ‘Microsoft.Web.Management.WebFarmClient, Version=7.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ です。
   場所 Microsoft.Web.Management.Arr.ArrModule.Initialize(IServiceProvider serviceProvider, ModuleInfo moduleInfo)
   場所 Microsoft.Web.Management.Client.Connection.Initialize(WebManagementInfo webManagementInfo)

少し古いですが、TechNetにARRのインストールに関するドキュメントがありました。一応このドキュメントにしたがって、インストール前には下記のサービスを停止状態にしてからインストールを行いました。コマンドプロンプトで次のコマンドを実行してください。

net stop was /y
net stop wmsvc /y

このコマンドを実行すると、次のサービスが停止されます。インストールが終わったら念のため再起動。

  • Windows Process Activation Service
  • World Wide Web Publishing Service
  • Web Managment Service

プロキシの設定

まずはTomcatへのリクエストを仲介するため、IISにプロキシ・サーバーとしての機能を設定します。IISマネージャーのWebサーバーを選択し、Application Request Routing Cacheの機能を開き、Server Proxy Settingsをクリックします。

imageimage

Enabled Proxyにチェックを入れProxy機能を有効化し、適用ボタンをクリックして設定を保存します。

image

リダイレクトの設定

次に、リダイレクトのフィルター条件を定義するために、URL書き換え規則の設定を行います。ここでは、http://[サーバー]/managerへのリクエストを受け付けたら、http://[サーバー]:8080]/managerのリソースをhttp://[サーバー]/managerに書き換えてクライアントに返却する例を示します。

IISマネージャーの機能ビューのURL書き換えを選択し、機能を開くをクリックします。表示されたURL書き換えの右側にある規則の追加をクリックします。

image image

空の規則をクリックしてOKボタンをクリックして設定を行います。

image image

No 設定項目 設定値
1 名前 Tomcat
2 URLの一致 パターンに一致する
3 使用 正規表現
4 パターン (manager.*)
5 URLの書き換え http://localhost:8080/{R:0}

サーバー名(or IPアドレス)で接続すると、IISのトップページが表示されます。

image

サーバー名/managerで接続すると、Tomcatの管理ページが表示されます。

image

カテゴリー:メモ, IIS タグ: ,