カテゴリー
Microsoft

【Windows10】【IIS】【ASP.NET】ローカル IIS に同じ PC の Visual Studio で作ったウェブアプリをデプロイする方法

ASP.NET ウェブアプリを開発 PC に立てたローカル IIS へデプロイし、スマホや他の PC からアクセスしたいですの!

上記の投稿で、ローカル IIS とデータベースの準備はできました。

早速確かめてまいりたいのですけれども、試す前に少し調べて予想した公開方法は、次の2つですの♪

  • ローカル IIS のドキュメントルートを Visual Studio プロジェクトのフォルダに設定するイメージ → [仮想ディレクトリ] を設定
  • Visual Studio プロジェクトの必要物を IIS へアップロードするイメージ → [公開] 作業でデプロイ

ひょっとしたら両方ともうまくいくかもしれませんし、ひとつも成功しないかもしれません。記録を、残してまいりますわ!

環境や前提など

結論・ポイント

いきなりですけれども、結論を申し上げますわ!

  • ローカル IIS のドキュメントルートを Visual Studio プロジェクトのフォルダに設定するイメージ → [仮想ディレクトリ] を設定、は成功!
  • Visual Studio プロジェクトの必要物を IIS へアップロードするイメージ → [公開] 作業でデプロイ、は失敗><
  • クライアント OS の IIS ではアプリケーションのデプロイの受け入れ先としての機能を追加できないため、失敗、不可能だった。

では具体的にどのように設定し、どのように成功し、そしてどのように失敗したか、残していきますわ♪

ローカル IIS のドキュメントルートを Visual Studio プロジェクトのフォルダに設定するイメージ → [仮想ディレクトリ] を設定

手順

  1. Visual Studio を [管理者として実行] で起動
  2. Visual Studio 2015 のプロジェクトで右クリック > [プロパティ] > [Web]
  3. [サーバー] の、[すべてのユーザーにサーバー設定を適用 (プロジェクト ファイルに格納)] にチェック
    [ローカル IIS] を選択
    [プロジェクトの URL] が次のように変わった
    IIS Express: http://localhost:51377/

    ローカル IIS: http://localhost/Sample
  4. 表示されるウインドウで [はい] を選択。自動で仮想ディレクトリを生成する。
    Web プロジェクト Sample に対して指定されているローカル IIS の URL http://localhost/Sample が構成されていません。これらの設定を保持するには、仮想ディレクトリを構成する必要があります。今すぐ仮想ディレクトリを作成しますか?

    Web プロジェクト Sample に対して指定されているローカル IIS の URL http://localhost/Sample が構成されていません。これらの設定を保持するには、仮想ディレクトリを構成する必要があります。今すぐ仮想ディレクトリを作成しますか?

  5. 表示されるウインドウで [はい] を選択。SQL Server Express を使用するようにうロジェクトの接続文字列を変更する。
    このプロジェクトでは SQL Server Express LocalDB が使用されています。SQL Server Express は、IIS と組み合わせて使用することをお勧めします。

    このプロジェクトでは SQL Server Express LocalDB が使用されています。SQL Server Express は、IIS と組み合わせて使用することをお勧めします。

    SQL Server Express の最新バージョンがインストールされていない場合は、Microsoft ダウンロードセンターからインストールできます。

    SQL Server Express を使用するようにロプジェクトの接続文字列を変更するには、[はい] をクリックします。; 変更しない場合は、[いいえ] をクリックします。

補足

  • プロジェクトのプロパティ編集時、Visual Studio を [管理者として実行] していない場合、保存しようとすると、次のエラー
    IIS メタベースにアクセスできません。コンピューター上の IIS Web サイトにアクセスするための十分な権限がありません。

    IIS メタベースにアクセスできません。コンピューター上の IIS Web サイトにアクセスするための十分な権限がありません。

  • 自動的に作成された仮想ディレクトリを確認。自分の手で作成したわけではないので、どの項目が必要な設定なのかがわからない。。。
    1. [コントロール パネル] > [システムとセキュリティ] > [管理ツール] > [インターネット インフォメーション サービス (IIS) マネージャー]
    2. [Default Web Site] を開くと、[Sample] が作られている。[物理パス] を確認すると、Visual Studio プロジェクトの場所が設定されていた。
  • IIS の Sample の関係ありそうな他の設定画面
    IIS に自動的に追加されたアプリケーション (仮想ディレクトリ)
    IIS に自動的に追加されたアプリケーション (仮想ディレクトリ)

    アプリケーションの編集画面。エイリアスと物理パスが特徴
    アプリケーションの編集画面。エイリアスと物理パスが特徴

    IIS に追加されたアプリケーション (仮想ディレクトリ) には接続文字列、つまりデータベースとの連携の設定も行われていた。
    IIS に追加されたアプリケーション (仮想ディレクトリ) には接続文字列、つまりデータベースとの連携の設定も行われていた。
  • SQL Server Express を使用するようにロプジェクトの接続文字列を変更した結果、接続文字列は、次のようになった。
    <connectionStrings>
      <add name="SampleContext" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|SampleContext-20151218232254.mdf;Initial Catalog=SampleContext-20151218232254;Integrated Security=True;MultipleActiveResultSets=True;User Instance=True"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
    
  • SSMS から確認すると、SQL Server Express にはデーターベースが表示されていない。LocalDB が使用されたままのように思えるので、手動で SQL Server Express にデータベースを作成して Web.config に設定したほうがよさそう。

結果

外部 PC、スマホ、タブレットから、Sample ウェブアプリにアクセスすることができました♪やったぜ!

なお、この設定を続けていくためには、次の注意点がございます。

  • 今後、このプロジェクトで開発を続けていくためには、Visual Studio 2015 を毎回管理者として実行して起動しなければならない。面倒。

Visual Studio プロジェクトの必要物を IIS へアップロードするイメージ → [公開] 作業でデプロイ

IIS にデプロイ先を作成

  1. [コントロール パネル] > [システムとセキュリティ] > [管理ツール] > [インターネット インフォメーション サービス (IIS) マネージャー]
  2. [Default Web Site] を右クリック > [アプリケーションの追加]
  3. 次を入力し、[OK]
    エイリアス: Sample2
    物理パス: C:\inetpub\wwwroot\sample2 ← ローカル IIS のルートフォルダにプロジェクト名のフォルダを作成して指定

次のページが参考になりました♪

SQL Server 2014 Express にデータベースを作成

  1. Microsoft SQL Server Management Studio 起動
  2. [データベース] を右クリック > [新しいデータベース]
  3. [新しいデータベース] ウインドウ。次を入力して、[OK]
    • データベース名: Sample2Db

Windows10 のローカル IIS にデプロイできるように設定を追加する。

結論から申しますとここでつまづいたために、ローカル IIS へのデプロイは Windows 10 では断念いたしました><

参考ページを頼りに試してみたのですけれども、そもそも参考ページにクライアント OS 付属の IIS には WebMatrix からデプロイ不可能、とありました。

サーバーとなるマシンの OS が問題となるため、Visual Studil からのデプロイも同等なようです。IIS の設定追加を進められませんでした><。

初めに残念なお知らせをしておきますと、WebMatrix からのデプロイ ( [ Web 配置 ] ) を受け入れ可能なのは、Windows Server 2008 などのサーバー OS 付属の IIS であり、Windows 7 などのクライアント OS 付属の IIS にはデプロイ先として構成することはできません。

他の参考ページですの。

IIS へ必要モジュールのインストール

  1. Download the Microsoft Web Platform http://www.microsoft.com/web/downloads/platform.aspx の [Free Download]
  2. ダウンロードした wpilauncher.exe を実行
  3. [製品] > [サーバー] > と進んで [IIS: 管理サービス] を探したが、、、見つからなかった。[Web 配置ツール 2.1] はあったが、Web Deploy 3.6 という名前ちバージョンですでにインストールされているので [追加] というインストール可能な状態ではあったがインストールしなかった。

Web Deployment Agent Service インストール

この作業を行う前に、すでに失敗は確定しております><。ですけれども、いつか Windows Server OS で作業するときの助けになればと思い、手順を残しておきますわ。

  1. [コントロール パネル] > [プログラム] > [プログラムと機能] > [Microsoft Web Deploy] を右クリックし [変更]
  2. [Next]
  3. [Change]
  4. [Remote Agent Service] および [IIS Manager UI Module] の [Will be installed on local hard drive] を選択し、[Next]
  5. [Change]
  6. [Finish]

この操作は無意味に終わりましたので、[Microsoft Web Deploy] の右クリックし [変更] から Custom Setup した 2 つを Unavailable にしました。

おわりに

Windows10 Pro 64bit のローカル IIS に Visual Studio 2015 からデプロイすることはできませんでした><。参考ページにあったとおり、仕様なのだと思うのですけれども、読み違えている可能性もございます。。。

いつか明らかになったら嬉しいですわ♪

また調べていますと、日本語のページは結構ヒットしたのですけれども、基礎的で理解がなかなか追いつかないページが多かったように思います。

検索ワードとしては、「asp.net サーバー ローカルIIS」「iis デプロイ」「asp.net 仮想ディレクトリの作成」「Web配置ツール ローカルiis」でしたの。

以上です。

コメントを残す