ASP.NET ウェブアプリを開発 PC に立てたローカル IIS へデプロイし、スマホや他の PC からアクセスしたいですの!
- 【Windows10】【IIS】【ASP.NET】自分の PC をウェブアプリ公開サーバーにする手順 – oki2a24
- 【Windows10】【SQL Server】ウェブアプリ公開用のサーバーのために SQL Server をセットアップする手順♪ – oki2a24
上記の投稿で、ローカル IIS とデータベースの準備はできました。
早速確かめてまいりたいのですけれども、試す前に少し調べて予想した公開方法は、次の2つですの♪
- ローカル IIS のドキュメントルートを Visual Studio プロジェクトのフォルダに設定するイメージ → [仮想ディレクトリ] を設定
- Visual Studio プロジェクトの必要物を IIS へアップロードするイメージ → [公開] 作業でデプロイ
ひょっとしたら両方ともうまくいくかもしれませんし、ひとつも成功しないかもしれません。記録を、残してまいりますわ!
環境や前提など
- MacBook Pro Retina 2012 での Boot Camp
- Windows10 Pro 64bit
- ローカル IIS 構築済み
- SQL Server 2014 Express の構築と SQL Server Management Studio Express (SSMSE) 導入済み
- Visual Studio Community 2015 導入済み
- Sample、Sample2 プロジェクトで試す。次のページの内容からテキトウに作成 → 【ASP.NET MVC5】ちょっとしたお試しをするときに土台となるアプリの作り方チュートリアル – oki2a24
- 外部 PC、スマホ、タブレット等のウェブブラウザから、開発環境 PC の IP アドレスでローカル IIS にアクセスできることは確認済み。
結論・ポイント
いきなりですけれども、結論を申し上げますわ!
- ローカル IIS のドキュメントルートを Visual Studio プロジェクトのフォルダに設定するイメージ → [仮想ディレクトリ] を設定、は成功!
- Visual Studio プロジェクトの必要物を IIS へアップロードするイメージ → [公開] 作業でデプロイ、は失敗><
- クライアント OS の IIS ではアプリケーションのデプロイの受け入れ先としての機能を追加できないため、失敗、不可能だった。
では具体的にどのように設定し、どのように成功し、そしてどのように失敗したか、残していきますわ♪
ローカル IIS のドキュメントルートを Visual Studio プロジェクトのフォルダに設定するイメージ → [仮想ディレクトリ] を設定
手順
- Visual Studio を [管理者として実行] で起動
- Visual Studio 2015 のプロジェクトで右クリック > [プロパティ] > [Web]
- [サーバー] の、[すべてのユーザーにサーバー設定を適用 (プロジェクト ファイルに格納)] にチェック
[ローカル IIS] を選択
[プロジェクトの URL] が次のように変わった
IIS Express: http://localhost:51377/
↓
ローカル IIS: http://localhost/Sample - 表示されるウインドウで [はい] を選択。自動で仮想ディレクトリを生成する。
Web プロジェクト Sample に対して指定されているローカル IIS の URL http://localhost/Sample が構成されていません。これらの設定を保持するには、仮想ディレクトリを構成する必要があります。今すぐ仮想ディレクトリを作成しますか?
- 表示されるウインドウで [はい] を選択。SQL Server Express を使用するようにうロジェクトの接続文字列を変更する。
このプロジェクトでは SQL Server Express LocalDB が使用されています。SQL Server Express は、IIS と組み合わせて使用することをお勧めします。
SQL Server Express の最新バージョンがインストールされていない場合は、Microsoft ダウンロードセンターからインストールできます。
SQL Server Express を使用するようにロプジェクトの接続文字列を変更するには、[はい] をクリックします。; 変更しない場合は、[いいえ] をクリックします。
補足
- プロジェクトのプロパティ編集時、Visual Studio を [管理者として実行] していない場合、保存しようとすると、次のエラー
IIS メタベースにアクセスできません。コンピューター上の IIS Web サイトにアクセスするための十分な権限がありません。
- 自動的に作成された仮想ディレクトリを確認。自分の手で作成したわけではないので、どの項目が必要な設定なのかがわからない。。。
- [コントロール パネル] > [システムとセキュリティ] > [管理ツール] > [インターネット インフォメーション サービス (IIS) マネージャー]
- [Default Web Site] を開くと、[Sample] が作られている。[物理パス] を確認すると、Visual Studio プロジェクトの場所が設定されていた。
- IIS の Sample の関係ありそうな他の設定画面
- 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 にデプロイ先を作成
- [コントロール パネル] > [システムとセキュリティ] > [管理ツール] > [インターネット インフォメーション サービス (IIS) マネージャー]
- [Default Web Site] を右クリック > [アプリケーションの追加]
- 次を入力し、[OK]
エイリアス: Sample2
物理パス: C:\inetpub\wwwroot\sample2 ← ローカル IIS のルートフォルダにプロジェクト名のフォルダを作成して指定
次のページが参考になりました♪
SQL Server 2014 Express にデータベースを作成
- Microsoft SQL Server Management Studio 起動
- [データベース] を右クリック > [新しいデータベース]
- [新しいデータベース] ウインドウ。次を入力して、[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 にはデプロイ先として構成することはできません。
他の参考ページですの。
- Visual Studio 2010 [発行]機能で配置可能とするためのサーバー設定 – monoe’s blog – Site Home – MSDN Blogs
- WebMatrixからWHS2011にWeb配置してみる。 « 鳩の谷の街へ ようこそ
- Webサービスを修正しているんだが : NakamuraYoichiのblog
IIS へ必要モジュールのインストール
- Download the Microsoft Web Platform http://www.microsoft.com/web/downloads/platform.aspx の [Free Download]
- ダウンロードした wpilauncher.exe を実行
- [製品] > [サーバー] > と進んで [IIS: 管理サービス] を探したが、、、見つからなかった。[Web 配置ツール 2.1] はあったが、Web Deploy 3.6 という名前ちバージョンですでにインストールされているので [追加] というインストール可能な状態ではあったがインストールしなかった。
Web Deployment Agent Service インストール
この作業を行う前に、すでに失敗は確定しております><。ですけれども、いつか Windows Server OS で作業するときの助けになればと思い、手順を残しておきますわ。
- [コントロール パネル] > [プログラム] > [プログラムと機能] > [Microsoft Web Deploy] を右クリックし [変更]
- [Next]
- [Change]
- [Remote Agent Service] および [IIS Manager UI Module] の [Will be installed on local hard drive] を選択し、[Next]
- [Change]
- [Finish]
この操作は無意味に終わりましたので、[Microsoft Web Deploy] の右クリックし [変更] から Custom Setup した 2 つを Unavailable にしました。
おわりに
Windows10 Pro 64bit のローカル IIS に Visual Studio 2015 からデプロイすることはできませんでした><。参考ページにあったとおり、仕様なのだと思うのですけれども、読み違えている可能性もございます。。。
いつか明らかになったら嬉しいですわ♪
また調べていますと、日本語のページは結構ヒットしたのですけれども、基礎的で理解がなかなか追いつかないページが多かったように思います。
検索ワードとしては、「asp.net サーバー ローカルIIS」「iis デプロイ」「asp.net 仮想ディレクトリの作成」「Web配置ツール ローカルiis」でしたの。
以上です。