FC2ブログ
Web Deployのリモート配置って便利ね・・・
とりあえず手順('A`)スマンナテキトウデ

・IISのインストール時にWeb管理ツールもインストールする
 IIS管理サービスというのが正式名称。IISをデフォルトインストールした状態だと入らない。
 コレがないと、そもそもリモート管理ができない。

・IISマネージャ -> 管理サービスを開く
 ※上でインストールしないと出てこないよ。

・リモート接続を有効にするにチェックを入れる。
 該当のポート番号のファイアーウォールを解除すること。デフォルトはTCP:8172。
 セキュリティが気になる人は、ポート番号を変更してもいいんじゃね('A`)y~~~

・Web deploy 2.0 の全ての機能をインストールする
 Web PI からじゃ駄目!パッケージからインストールすること。
 多分、3.5でも大丈夫。手元にあったのが2.0だったからそれを使っちまったぜ('A`)v
 ver2.0 ttp://www.microsoft.com/ja-jp/download/details.aspx?id=25230
 ver3.0 ttp://www.microsoft.com/ja-jp/download/details.aspx?id=30436
 ver3.5 ttp://www.microsoft.com/ja-jp/download/details.aspx?id=39277
追記2015/4/6
 全てインストールする必要はない
 http://blog-imgs-73.fc2.com/h/s/s/hssamurai/WebDeploy3_5.jpg

・デプロイ用のWindowsユーザーを作る
 グループはUsersでOK。ちゃんとパスワードも設定すること。
 このユーザーを使って、デプロイプログラムが作業を行うっぽいよ?
 追記2014/04/18
 Users じゃ駄目っぽい。なので、Administratorsにすること。
 前回は何故成功したのか不明。

・IISマネージャを起動し
 サイト -> (Web Site name) -> 管理グループ(IIS マネージャーのアクセス許可) を開く

・IISマネージャを操作できるユーザーを追加
 先ほど作った、Windowsユーザーを追加。
 Windows ユーザーがダメな場合はIISユーザーなんだけど、この場合、他の設定もする必要があるのでこっちは割愛。

・デプロイ先のディレクトリに対して、フルコントロール権を上記で追加したWindows ユーザーに割り当てる
 フルコントロールでないと、展開先のディレクトリに対してアクセス権が操作できないためと思われる。
 なので、アクセス権が操作できればフルコントロールじゃなくてもいいかも。
 面倒だしこれで良しとする('A`)

 これでサーバー側の設定は終わり。
 あとは、Visual Studio の発行の設定で、WebDeployを設定するだけ

・Visual Studio 2012 の設定例
 デプロイ対象のプロジェクトを右クリック、発行を選択。
 デプロイ方法の例は下記を参照

 発行方法:Web Deploy
 サーバー:デプロイ先のサーバー。例 192.168.1.253 or 192.168.1.253:8111
 サイト名:デプロイしたいサイト名
 ユーザー名:デプロイ作業を行うWindowsユーザー
 パスワード:同上のパスワード
 宛先URL:配置が終わったあとにアクセスするアドレスなので入れなくていいのかも?

※注意点
 アプリケーションプールで使っているWindowsユーザーをデプロイのユーザーとして使うのはだめ!
 デプロイ中に、ディレクトリに対してアプリケーションプールのユーザーのアクセス権を制御するため
スポンサーサイト
IIS のアプリケーションプールIDの正式名称?
いつも忘れるのでメモ('A`)y~~~

アプリケーションプール名だけだと検索にヒットしない。
下記の名称でないと出てこない罠。罠じゃないかwww

IIS AppPool\アプリケーションプール名

Visual Studio の配置ツールとか使うとアクセス権も設定してくれるから意識する必要はほとんどないけど
管轄外のデータを扱う際には必要だよね。
例えば、DBへの接続にWindows認証を使う際には、アプリケーションプールIDを設定しないとね('A`)y~~

例えばツールでアプリケーションプールに対してアクセス権を設定したい場合は下記のようなコマンドだぬ
ICACLS test.txt /grant "IIS AppPool\DefaultAppPool":F
Classic ASP のデバッグ
Classic ASP でサーバー側デバッグを有効にすると、リクエストを処理するスレッドが1つになる。
このため、長いことブロッキングを起こす処理を行うと、他のリクエストが待機状態になる。

MSDNのどっかに書いてあったような気がする。URL忘れちまった…

まぁ、これに気が付かなくて嵌ったという罠。

              __            Π
        _,.-、    | |  r――'''つ  ┌‐┘ 'ー┐
      ,,-'' _,ノ_   | |  ´ ̄ ̄      ̄/ / ̄        / 〉
    ,,-''  < / /  .| |            / / ヽ二二!   / /
  ,,-''  rヘ `´ / _ | |  /`ー--―┐  / /         / /     r 、
 (_,.イ  ,、ヽ  〈 < ヽL_j  ` ー――‐'  <_/  <´ ー--、  { {__,.、    { i
    }  `  ハ `'´ ノ                 ` ー‐ '  ヽ__ノ    } }
   / r┐ ./ ヽ_,/                     /         / ,/
     ̄ / ./                         /         `"
     <_ノ     ヽ                   /         /
    \        ヽ                            /
      \       ヽ      ____            /
       \           /      \          /
         \         /  _ノ  ヽ、_  \      /
          \      /  o゚⌒   ⌒゚o  \   /
                 |     (__人__)    |
                 \     ` ⌒´     /
クラシックASPでのデバッグ
クラシックASPってまだまだ現役っぽい。まぁ、リプレイスの仕事とかもあるのだろう。

んで、ビジネスロジックをCOMに内包して、ASPからは呼び出しのみをするってことはよくある?ことだと思う。
※ 正直知らね('A`)y~~~12年ほど前に記事を見た覚えがある。

まぁ、昔はVisualInterDevだったかな?そんなのとか使ってやってたんだろうけど、現状手に入りにくいと思う。
てか、Winodws7とかで動くかしらねーし。今だと仮想PCでWindowsXPいれればいいじゃないという話もある。

話は戻して、
コードから処理を追っかけてどうしても行き詰まるときがある。その時に必要になるのがステップ実行でのデバッグ。
これをVisualStudio2005以降でやりたいよ!って方法を下記にまとめる。

・IISの設定で、サーバーサイドのデバッグを有効にするにチェックを入れる
 ※これを行うと、リクエストを処理するスレッドが一つに限定されるっぽい。なので、スレッドがスリープするような作りになると、他のリクエストが処理されなくてブロッキングするYO

・ブラウザでアクセスして、IISのサービスプロセスを起動させる
 ※w3wp.exeって名称かな。Windows2003R2でIIS5の互換モードの場合は、プロセスが違うので注意。たしか、svchostだったかな。

・VisualStudioを起動する。

・メニューの開くから、デバッグ対象のWebサイトを開く。
 ※たぶん、この時に必要なソフトが入ってないとエラーを食らう。何入れるんだったかな…

・メニュー -> デバッグ -> プロセスにアタッチで、w3wp.exeにアタッチする

・ソースコードを開き、ブレークポイントを設定する

・ブラウザを操作して、ブレークポイントを設置した処理を行う。

これでOK。まぁ、いろいろと不便だけどな('A`)y~~~
IIS6.0でHTTPSを有効にする
お手軽なHTTPSの環境を構築してみよう。IIS6.0(Windows2003Server)のみなので注意。
IIS7.0とかは試してない。

IIS6.0リソースキット内の selfssl.exe を使うことでSSL認証のための
テスト用のサーバー証明書をインストールすることが出来る

使い方はコマンドプロンプトから

selfssl.exe /N:CN=発行先と元名 /K:暗号化bit数 /V:有効期限 /S:WEBサイトID /P:SSL用ポート


selfssl.exe /N:CN=TEST /K:1024 /V:365 /S:1 /P:443


WEBサイトIDは、ログのプロパティからのログファイル名でわかる。
出力フォルダ名が必ず W3SVC????????? というフォーマットになっている。
??に数値がはいるがそれがWEBサイトIDになる。

他にもASPのRequestオブジェクトのServerVariables からも調べることが出来る。


TOP
プロフィール

hssamurai

Author:hssamurai
FC2ブログへようこそ!

最新記事
最新コメント

最新トラックバック

月別アーカイブ
カテゴリ