4

私は Windows Azure を初めて使用し、そのしくみを学ぶためにいじっています。できるだけシンプルにするために、VS 2012 Express for Web によって生成されたデフォルトの MVC 4 テンプレートをデプロイしようとしています。新しいプロジェクト、Azure クラウド サービスを作成しました。MVC 4 Web ロールを選択しました。これにより、ホーム ページ、概要ページ、連絡先ページ、および登録とログインへのリンクを備えた素敵な小さな asp.net アプリケーションが作成されます。このサイトを Azure にデプロイして、クラウド上で動作することを確認したいだけです。

ただし、メンバーシップは azure では機能しないようです。アプリケーションのページは正しく表示されます。しかし、[登録] リンクをクリックしても、新しいユーザー名とパスワードを入力するページに移動しません。メンバーシップ テーブルがどこにも生成されているとは思えません。

これがどれほど単純かを考えると、どこかでばかげた間違いを犯しているに違いないと思います。誰かがこれを手伝ってくれたら本当にありがたいです。

また、記録のために、VS2012 Express でスタンドアロンの MVC 4 プロジェクトを作成すると (mvc 4 Web ロールを使用した Windows Azure クラウド サービス プロジェクトとは対照的に)、その MVC4 プロジェクトを右クリックして、それを公開すると、接続文字列を使用して SQL データベースを指定できるようになります。さらに、Azure に発行されると、メンバーシップは完全に機能します。ユーザー アカウントを作成してログインできます。Azure ポータルを使用して SQL Azure データベースを調べると、そこで作成された新しいメンバーシップ テーブルを確認できます。

しかし、MVC4 webrole を使用して Windows Azure クラウド サービスを公開しようとすると、azure プロジェクトに何らかの接続文字列を提供するオプションが表示されません。おそらくそれがメンバーシップが機能していない理由です... Webロールにリンクされたデータベースがないため...しかし、これを指定する方法がわかりません。スタンドアロンの MVC4 プロジェクトを Azure に発行することと、MVC4 Web ロールを使用して Azure クラウド サービスを発行することはまったく同じであるという印象を受けました。間違っている場合は訂正してください。いずれにしても、mvc 4 Web ロールのメンバーシップ機能を確認できるはずです。

ここに私が持っているものを再現する手順があります。基本的にはすべてデフォルトのものです:

  1. VS2012 Express File -> New Project -> 'Windows Azure Cloud Service' で新しいプロジェクトを作成します。

  2. 次の画面で、ASP.NET MVC 4 Web ロールをそれに追加します。

  3. 次の画面で、[インターネット アプリケーション] を選択します。

これらの 3 つの手順により、新しいプロジェクトが作成されます。ローカルで問題なく実行されます。今、私はそれをクラウドに入れようとしています。

  1. ソリューション エクスプローラーで Windows azure プロジェクトを右クリックし、[発行] を選択します。

  2. サブスクリプションを選択します (VS から Azure に公開するための証明書/資格情報が既にあるので、それを選択します)

  3. 次の画面でクラウド サービスを作成します (私は「garyazurecloudservice」と名付けます)。

  4. パブリッシュ ウィザードのデフォルト設定をすべて受け入れ、[パブリッシュ] をクリックします。

公開プロセスには数分かかります。Web アプリケーションはhttp://garyazurecloudservice.cloudapp.net/で表示できます。

ホーム、概要、および連絡先のページがすべて正しく表示されます。ただし、右上の [登録] リンクをクリックすると、正しいレイアウト テンプレートを含む Web ページが表示されますが、「エラー。リクエストの処理中にエラーが発生しました」という赤いエラーが表示されます。

Azure で SQL データベースを作成しようとしましたが、このロールを接続する方法がわかりません。おそらくそれが問題ですか?あるいは、それはまったく別のものかもしれません。誰かが間違っていることを教えていただければ幸いです。

私は一日中グーグルで過ごし、サークルに参加しましたが、成功しませんでした。ご協力いただきありがとうございます。ゲイリー

4

1 に答える 1

3

Web サイトのメンバーシップ セクションが、Azure で実行されている場合、バックグラウンドで SQL テーブルを作成できないのは、それらのテーブルがどこに存在するかという問題だけが原因であるという点で正しいです。

Azure ホスティング スペースは、サイトが仮想マシン上に存在し、最初に問題が発生した場合に別の仮想マシンにファイルがレプリケートされるという点で、従来のホスティングとは異なることに注意してください。また、ウェブサイトをホストするために 2 番目の「サーバー」を呼び出して、負荷に対応する場合はどうなるでしょうか? その場合、テーブルはどこに存在し、2 番目の仮想マシンは最初の仮想マシンへのアクセス方法をどのように知るのでしょうか?

答えは、SQL Azure データベースを作成し、そこにテーブルをアップロードすることです。そうすれば、Web サイトを実行している 1、2、または 1000 の「サーバー」がデータの中央データベース リポジトリにアクセスするための永続的な場所が得られます。

あなたの例では、それは単に「機能する」はずであり、ある程度同意しますが、ローカル マシンまたは既存の (従来の) Web ホストで実行されているアプリケーションは、Azure の動作モデルとはまったく異なります。

SQL Azure のセットアップがどのように機能するかについての質問についてですが、これはポータル (www.windowsazure.com Web サイト) を通じて作成されたのでしょうか? その場合、接続文字列セクションへのアクセスを含め、そこから SQL Azure データベースを表示および管理できるはずです。これにより、これらをコピーして、MVC4 アプリケーションの web.config ファイルに貼り付けることができます。そこから、このデータベースを他のデータベースとほとんど同じように利用できます。

これがすべて役立つことを願っています-Azureは一度飼いならされた美しい獣です.

于 2012-12-28T07:43:22.953 に答える