8

Windows Azureでいくつかのラボを試しましたが、正常に動作します。そこで、AzureEmulatorを使用してアプリケーションの開発を開始します。

今日、Windows Azureで最初の展開テストを実行しましたが、最初の問題があります。

No connection could be made because the target machine actively refused it 127.0.0.1:10000

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:10000

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[SocketException (0x274d): No connection could be made because the target machine actively refused it 127.0.0.1:10000]
   System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) +2724507
   System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) +392

[WebException: Unable to connect to the remote server]
   Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.get_Result() +96
   Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.ExecuteAndWait() +271
   Microsoft.WindowsAzure.StorageClient.CloudBlobContainer.Delete(BlobRequestOptions options) +213
   MyProject.Web.MvcApplication.InitBlobs() in C:\Sites\MyProject\MyProject\MyProject.Web\Global.asax.cs:85
   MyProject.Web.MvcApplication.Application_Start() in C:\Sites\MyProject\MyProject\MyProject.Web\Global.asax.cs:52

初めての展開だったので、存在しないコンテナを削除してみました。例外を処理します。

プロジェクトを再デプロイしましたが、サーバーエラーは発生しません。接続が終了し、次のエラーが発生します。Error 324 (net::ERR_EMPTY_RESPONSE)

構成に何かが欠けていると思いますが、それが正確に何であるかを見つけることができませんでした。

ご協力ありがとうございました!

編集:展開自体はこのアプリケーションの最初の展開ですが、WindowsAzureで実行する最初の展開ではありません。Windows Azureの開発を開始したときに、すでにいくつかのmsdnラボを展開しました。

4

3 に答える 3

6

OK-これを再現できました。問題はクラウド展開プロジェクトの構成にあります。

エラーの私のバージョン

このエラーが発生した理由は、ストレージ接続文字列がを指すように設定したため"UseDevelopmentStorage=true;"です。代わりに、Azure配置プロジェクトの接続文字列ツールを使用して、ConfigurationManager接続文字列を取得する場所を変更し、ローカル開発用とクラウドへのデプロイ用に別の文字列を用意する必要があります。

  • Windows Azureプロジェクトを開き、[役割]ノードを見つけます。
  • WebRoleプロジェクトをダブルクリックして、構成パネルを開きます
  • [設定]タブをクリックして、プロジェクトに定義されているさまざまな設定をすべて表示します。おそらく次のようなものが表示されます。

設定パネル

  • Service Configuration上部のコンボボックスに注目してください。写真に表示されている私の設定は、現在、設定がクラウドとローカルの両方StorageConnectionStringの展開に適用されることを示しています。それは良くないね。
  • その下にあるものを見ますか?2つ目?値は実行している構成に依存するため、これ<Select Configuration>は[値]列に表示されます。

これを修正するには、サービス構成をに変更してから設定をCloud調整するだけです。

  • Service Configuration設定をクラウドに変更します
  • 設定の最後にある楕円をクリックして、[ストレージクレデンシャルの入力StorageConnectionString]を選択します。

構成設定

  • CloudStorageAccountこのダイアログと構成設定ページを保存し、クライアントを作成するコードに戻ります。
  • クライアントを作成するために接続文字列を取得する必要がある場所で、次のスニペットを使用します。

    //接続文字列からストレージアカウントを取得しますCloudStorageAccountstorageAccount= CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting( "StorageConnectionString"));

  • storageAccount、クラウドとローカルのどちらに公開しているかに基づいて、正しい接続文字列から読み込まれるようになりました。

デプロイメントウィザードが実行されると、デバッガーで実行するためのローカル設定を保持しながら、クラウド設定が自動的に取得されます。

これを試してみて、うまくいかない場合はお知らせください。Lyncの会議に参加してコードを確認し、問題がなければ修正してください...

于 2012-08-15T16:44:09.617 に答える
4

わかりました、私は自分の間違いが何であるかを理解しました。

抽象化を望んで、アプリでブロブ接続をごくわずかしか使用しないソリューションを設計しました。ブロブストレージへの呼び出しが3回ありました。

  • 私の1つGlobal.asax
  • に1つBlobService
  • 1つにExtensionMethod

Global.asaxとBlobServiceを数回チェックしましたが、ExtensionMethodを忘れました。私はプロジェクトの最初にそれを書きました、そして私は次の指示によって開発中だけ私のblobアカウントにアクセスしていました:CloudStorageAccount.DevelopmentStorageAccount代わりにCloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("BlobConnection"))

クラウドにいる間に開発ストレージにアクセスしようとしていたので、 ChrisKoeningの答えは部分的に正しかった。この質問で同じ問題が説明されている場合、私のアドバイスは次のようになります。

  1. クリスの答えを実行する
  2. 問題が解決しない場合は、 VisualStudioDevelopmentStorageAccount検索ツールまたはAgentRansackを使用してソリューション全体で文字列を検索し、最初の手順で定義したキーに置き換えてみてください。
  3. それでも問題が解決しない場合は、他の場所にDevelopmentStorageへの参照があるかどうかを確認してください
于 2012-08-16T13:34:08.030 に答える
1

問題は、Windows Azure固有ではなく、マシンにインストールされているコンポーネントに固有です。このような問題をトラブルシューティングするためのいくつかの指針を提供できますが、特定の根本原因を特定するのは非常に困難です。

できることは、テンプレートから直接非常に単純なWebロールアプリケーションを作成し、それをWindows Azureエミュレーターで実行して、正常に機能するかどうかを確認することです。このようにして、問題がコードに固有のものであるかどうかを区別できます。単純なテストアプリでまったく同じ問題が発生した場合、問題はWindowsAzureコンポーネントに関連するものです。

また、IISExpress(デフォルト)またはIISサーバーのいずれかで実行するようにアプリケーション設定を変更して、問題の動作に変更があることを確認することもできます。IISサーバーとIISExpressの両方でまったく同じエラーが発生した場合は、WindowsAzureコンポーネントに焦点を当てて問題のトラブルシューティングを行うことができます。

于 2012-08-14T17:41:11.217 に答える