質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

解決済

1回答

980閲覧

ASP.NET MVC VPSにデプロイの場合Serverに、SqlServer,SqlServerManagmentStudioを用意する必要があるのでしょうか

Good

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

0クリップ

投稿2022/01/15 23:25

編集2022/01/16 02:25

プログラミング初学者です。

現在、ASP.NET MVC を学習していて簡単なWEBアプリを作っています。

Microsoft Visual Studio Community 2019
Version 16.10.1

を利用しています。

また、プロジェクトを作成する際にはASP.NET Web アプリケーション(.Net Framework)を選択し、
フレームワークは .Net Framework 4.7.2 を選択しています。

自身のPC内でIISやSqlServerは使用せずに、書籍を参考にVisual Studioの機能だけを使って作成しました。

(↑そもそも、このVisual Studioの機能だけを使っているという理解は間違ってないでしょうか。特に何もしなくてもIIS Expressなんかが動いてくれているみたいで、実行をするとブラウザが立ち上がって動きを確認できるので、そう理解していました。)

作ったアプリは簡単な自分に関する日々のデータを入力するものです。

ASP.NET Identity による個別ユーザーアカウントによる認証とデータ入力、過去の履歴確認ができるというのが主な機能です。

自分の想定通りにできたので、次のステップとしてさくらVPSで Windosw Server

2019 Datacenter Edition を借り、IISやWebDeploy3.6をインストールして手元のPCのVisual Studioからデプロイを試みました。まず、デプロイの前に自分のPCから契約したvpsのIPアドレスに接続してIISのデフォルト画面が表示されることを確認し通信自体はできていることを確認しました。その後、Visual Studioからデプロイを行い正常に終了しました。

しかし、再度vps接続するとログイン認証の画面は表示されるもののいざログインの入力を行うとエラーが発生してしまいます。

エラーの内容は以下のとおりです。

[SqlException (0x80131904): SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: SQL Network Interfaces, error: 52 - Local Database Runtime のインストールが見つかりません。SQL Server Express が正しくインストールされていること、および Local Database Runtime 機能が有効になっていることを確認してください。)]

ここから質問なのですが、一般に公開するため、サーバーにデプロイするときには手元でのPCでの開発とは異なり、別途 Windosw Serverに、SqlServer,SqlServerManagmentStudio を導入しておかないとダメなのでしょうか。
このあたりあまりにも当たり前のことなのか情報が見つけられず、行き詰っています。
初歩的過ぎて恥ずかしいのですが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/01/16 01:58

ASP.NET のタグもつけていただけると幸いです。自分事で恐縮ですが、ASP.NET MVC Framework の方はめったに見ないので見逃してしまうことが多いので。 > Identifyのログイン機能 ASP.NET Identity による個別ユーザーアカウントによる認証ですよね?  .NET Framework か Core どっちかとそのバージョンを質問欄を編集して追加情報として書いてください。
Good

2022/01/16 02:29

ありがとうございます。 >ASP.NET Identity による個別ユーザーアカウントによる認証ですよね? はい。その通りです。 >.NET Framework か Core どっちかとそのバージョンを質問欄を編集して追加情報として書いてください。 このあたり、自分の曖昧な知識で答えるのは良くないと思いましたので、プロジェクトを作成したときの情報をありのままに記載してみました。間違い、不足等あればまたご指摘頂けると幸いです。
退会済みユーザー

退会済みユーザー

2022/01/16 02:42

> フレームワークは .Net Framework 4.7.2 を選択しています。 その情報で十分です。Core ではなくて .NET Framework 版であることが分かりました。
guest

回答1

0

ベストアンサー

ここから質問なのですが、一般に公開するため、サーバーにデプロイするときには手元でのPCでの開発とは異なり、別途 Windosw Serverに、SqlServer,SqlServerManagmentStudio を導入しておかないとダメなのでしょうか。

開発環境で VS2019 のテンプレートを使って ASP.NET MVC のプロジェクトを認証に「個別のユーザーアカウント」を選んで作ったのですよね?

であれば、運用環境には SQL Server は必要です。質問者さんが自分でインストールできるものではないと思いますので、どのように対処できるかさくら VPS のサポートに聞いてください。

なお、SQL Server Management Studio (SSMS) はただのツールですので必須ではありません。というよりさくら VPS のサーバーにインストールしても意味はないはずです (質問者さんは見れないので)。質問者さんの開発マシンの SSMS からさくら VPS の SQL Server に接続して(できるかどうか不明ですが)使えるかもしれませんが。

認証に「個別のユーザーアカウント」を選んでプロジェクトを作ると ASP.NET Identity を使ったユーザー認証のコードが自動生成されます。そのコードは VS2019 をインストールした時に一緒にインストールされる LoacalDB (開発用の SQL Server) が使われるように設定され、自動生成された web.config の接続文字列に従って、EF Code First の機能により、SQL Server データベース (.mdf ファイル) が生成されます。

例えば Mvc5App4 という名前でプロジェクトを作ると、自動生成された web.config の接続文字列は以下のようになります(質問者さんのケースでもほぼ同じになるはず)、

<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-Mvc5App4-20220116112539.mdf;Initial Catalog=aspnet-Mvc5App4-20220116112539;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>

上の接続文字列の Data Source は LocalDB を使う設定になっています。

AttachDbFilename の指定に従って App_Data フォルダ (|DataDirectory|) に指定された名前の.mdf ファイルと .ldf ファイルが生成され、

イメージ説明

Initial Catalog の指定通りその名前の SQL Server データベースとテーブルが生成されます。

イメージ説明

上のデータベース一式をさくら VPS の SQL Server に移植して、web.config の接続文字列をさくら VPS の SQL Server 用に変更する必要がありますが、具体的にどのようにできるかはさくら VPS のサポートに聞いてください。

投稿2022/01/16 03:11

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Good

2022/01/16 03:43

>例えば Mvc5App4 という名前でプロジェクトを作ると、自動生成された web.config の接続文字列は以下のようになります(質問者さんのケースでもほぼ同じになるはず) web.config確認し、確かにその通りでした。 >開発環境で VS2019 のテンプレートを使って ASP.NET MVC のプロジェクトを認証に「個別のユーザーアカウント」を選んで作ったのですよね? >であれば、運用環境には SQL Server は必要です。質問者さんが自分でインストールできるものではないと思いますので、どのように対処できるかさくら VPS のサポートに聞いてください。 はい。ご指摘の通りです。さくら VPS のサポートに問い合わせてみます。 このような初歩的な質問に詳細にご回答頂きありがとうございました。 ご回答の中で初めて見る用語(例えば、LocalDB)も検索して、正確ではないかもしれませんがおおよその雰囲気はつかめたように感じ、自分が見えてなかったところが少し明らかになったように思います。
退会済みユーザー

退会済みユーザー

2022/01/16 11:19

いえ、全く初歩的ではないですよ。さくら VPS の Windows Server の IIS に ASP.NET MVC アプリをアップロードして動くようにできるというのは初心者のレベルを完全に超えてます。SQL Server が使えるよう頑張ってください。質問者さんならできると思います。
Good

2022/01/16 13:29

早速、さくらに問い合わせたのですが回答は休み明けになりそうでしたので、 学習用だし失敗したらリセットするつもりで回答前に対応してみました。 調べると、さくらのオプションにMicrosoft SQLServer ExpressEdition(0円)があり(見落としていました)、さくらの手順に従いインストールしました。 また、手元のPCにSQL Server Management Studio (SSMS)をインストールして、データベースをさくらVPSのSQLServerに移行させることができました。 その後、接続文字列についても何度もエラーがでましたがネットの情報を試したところ無事に手元で動作させた時と同様に動くようになりました。 恐らく、本職のプログラマの皆さんから見るとIISとかSQLServerにあり得ないような設定をしてしまっているかもしれませんが、学習のゴールにはたどり着けました。 この件は1週間ほど検索、トライ、失敗を繰り返していて、諦めかけていました。 回答を頂いてトライするべきことが明らかになり、大変助かりました。 改めて御礼申し上げます。
退会済みユーザー

退会済みユーザー

2022/01/18 01:15

ご自分の PC が Windows OS の Professional 版であれば IIS を動くようにして、さらに SQL Server Express 版をインストールしてステージング環境を作ってはいかがですか? デプロイする前にステージング環境で動作確認すれば、開発環境では問題なく動くがデプロイすると動かないという問題を未然に防ぐことができると思います。IIS 上で動かしながら Visual Studio でデバッグするということもできますし。
Good

2022/01/23 02:10 編集

返信遅くなり失礼しました。 ステージング環境というのは初めて知りましたので、検索してみました。このような便利なやり方があるのですね。勉強になります。自分のPC確認したところHomeでしたので残念だったのですが、プログラミングの学習をこれからも進めていきたいと思いますので、PC買いかえるときはProfessional にしようと思います。正直、今のPC買うときには全く意識していませんでした。 追加のアドバイスありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問