経緯

2007年ごろに開発したWebアプリケーションがありました。

保守のほうも担当させていただいていましたが、OSが「Windows2003R2」でした。

ご存知のように、「WindowsServer 2003」は、Microsoftの正式サポートが2015年夏で終了してしまいました。

ハード/ドメイン関係の更新は、2015年6月までに「Windows 2012R2」へ、無事に移行が済んでいました。

ただし、IISで運用していたWebアプリケーションは、新規アプリケーションとして再構築することになりました。

クライアント様との打ち合わせで、新規アプリケーションの開発は、当オフィスに一任をいただき、「.net MVC」にしました。

開発環境は「Microsoft VisualStudio 2015 Pro」版(以降VS2015)。

前のシステムも、当オフィスが開発したもので、ほぼ10年間稼働したシステムです。

WebDeployは手ごわかった

Windows 10」の仮想マシンを開発用に用意し、VS2015をインストール。

初期開発は、このマシンだけでの閉じた開発になります。

データベースは、組み込みの「LocalDB」、WEBサーバーは同じく組み込みの「IISExpress」。

とりあえず必要な機能は、VS2015をインストールするだけで用意されています。

この閉じた環境で、開発は順調に進行していきました。

バグとりも順調に終了し、実行環境を想定したローカル環境を構築します。

ローカルドメインに、「SQLServer」を入れたデータベースサーバーを用意(Windows2012R2)。

同じく、「IIS8.5」を入れたウエブサーバーを用意(Windows2012R2)。

さて、開発マシンからウエブサーバーへ「Deploy」.......??????

missing

最初からうまくいくわけないわな...

と思いつつ、サイトの検索を開始。

ヒットする検索ページを片っ端から調べました。

しかし、そのほとんどが、古いVSやIISのバージョンの記事ばかり。

ほぼ2日間、検索に明け暮れ、これはと思える方法を試してみても、まったくダメ。

同じ「接続失敗」の画面が表示されるだけです。

ふと、海外のサイトを検索したら、「あった!!」。

古いバージョンから最新バージョンまで履歴的に記事が掲載されていました。

おそるおそる、手順を進めていって、めでたく配置完了です。

途中で、「FTP」にしょうかと何度もくじけそうになりました。

同じトラブルで、このサイトにたどり着いた人向けに、以下手順です。

VS2015からIIS8.5へWeb Deployする方法

最新Web Platform Installer (Web PI)のダウンロード

IIS8.5をインストールすると、標準でこの機能がついていて、管理アプリ(IISマネージャ)では、アクセスするたび表示されます。

問題の一つは、このバージョンが古いのだそうで、Web PIダウンロードページに行って「5.0」をダウンロードしてきます。

(WordPressのインストールでも同じで、古いWeb PIでは古いバージョンのWPがインストールされました)

IIS管理アプリ(インターネットサービスマネージャ)を起動後、「サーバー」を選択すると右ペイン
に「新しいWebPlatformコンポーネントの取得」という項目がありますので、クリックします。

IIS_2

Web PIダウンロードセンター」に接続しますので「ダウンロード」ボタンをクリックし、「実行」するとインストールが始まります。

IIS_3

インストールが終了すると、自動的に「Web PIインストーラ」が起動します。
タイトルが「Web Platform Installer 5.0」となっているのがわかります。
デフォルトのWeb PIでは、「Web Platform Installer 」としか表示されませんので、判別することができます。

IIS_4

上の画面が、「Web PI5.0」起動画面です。
赤○印の検索テキストボックスに「deploy」と入力して、エンターキーを押します。

IIS_5

現在(2015/11)、「web deploy」は3.6が最新版のようです(赤○印)。
黒○印の「追加」を選択して、「インストール」ボタンをクリックすると、インストールが始まります。
ここで、「3.6」を選択しても、「3.5」も自動的にインストールされるようです。

IIS_5_2

このような製品が、同時にインストールされます。

IISでの設定

IIS_5_3

ここからは、「IIS8.5」の設定です。
サーバーを選択して、中央ペインの「管理サービス」を選択します。
管理サービスアイコンが見当たらない場合は、サーバーマネージャーから、「管理メニュー」/「サーバーの役割の選択」画面で「ウエブサーバー」項目を展開して、「管理ツール」の下にある「管理サービス」にチェックを入れて、インストールしてください。
また、「MVCなどの.netアプリケーション」を走らすのなら、「.net4.5拡張」などは必須ですので、未導入ならこの作業の後インストールしておいてください。
このあたりは、他のサイトで詳しく説明があるでしょう。

IIS_5_4

最初に、「リモート接続を有効にする」チェックボックスに、チェックを入れます。
資格情報」など、適宜入力して、右ペインにの「適用」をクリックしたのち、「開始」をクリックします。
ちなみに、再度設定をし直すときには、「停止」をクリックし、一度機能を止めたうえで編集します。

Deployしたい親サイトを選択し、「IISマネージャのアクセス許可」を選択します。
直前の設定で、「資格情報」はデフォルトでは、「Windows資格情報のみ」です。
どういうことかといえば、いわゆる「ドメイン認証」だけが有効なのですよ、ということです。
ドメイン環境でDeployするのであれば、デフォルトのままにします。

IIS_5_6

右ペインの「ユーザーの許可」をクリックします。

IIS_5_7

このダイアログには、「Windows」と「IISマネージャ」が選択できるようになっています。
IISマネージャ」を選択できるのは、「資格情報」で「Windows資格情報またはIISマネージャ資格情報」を選択して、なおかつユーザーをすでに登録している場合だけとなります。

IIS_5_8

ActiveDirectoryでは、おなじみの資格情報を選択するダイアログですので、説明は省略します。

IIS_6

最後に、配置する親のサイトを選択して、マウスで右クリックします。
展開」項目が、追加されています。
この項目が表示されていることが、正しくセットアップされていることを、証明しています。
もし、表示されなければ、「コントロールパネル」/「プログラムと機能」を開き、「Microsoft WebDeploy 3.6」を選択します。
修復」メニューから再インストールしてみてください。
サブメニューの「Web配置による発行の有効化...」を選択してみてください。

IIS_7

デフォルトのまま、「設定」ボタンをクリックすると、「結果」欄に内容が表示され、デスクトップに設定ファイルが、書き出されます。
ここで書き出された設定ファイルを、開発マシンにコピーしておきます。

VS2015での公開設定

VSSetting1

VS2015」を管理者権限で起動し、デプロイ予定のプロジェクトを開きます。
公開」を開きます。
プロファイル」タブで、「インポート」を選択し、コピーしたファイルを指定します。

VSSetting2

設定ファイルを読み込むと、パスワード以外のデータがインポートされます。
接続の検証」をクリックします。
パスワード入力ダイアログが表示されるので、設定はドメインアカウントですので、アカウントのパスワードを入力します。
WebDeployツールを、正しくインストールしてあれば、ポートの解放や書き込み権限などがすべて解決されます。

追記

ポイントは

  1. 「Web PI」は新しくダウンロードする(Ver 5.0)
  2. 新しい「Web PI」から「WebDeploy 3.6」をインストールする。
  3. 展開」ポップアップメニューから「Web配置による発行の有効化」を実行する

の3点でした。

正しくインストールされたかどうかの判断は、「展開」メニューが表示されるかどうかです。

表示されれば、インストール自体に問題はなく、細部の設定であると判断できます。