3

これはおそらく本当にばかげたことだと思いますが、これを理解するために2時間グーグルを検索してきました.

Visual Studio でデバッグしたい新しいテスト Azure アプリがあります。スタートアップ プロジェクトを Web ロール (MVC) プロジェクトに設定すると、VS でブレークポイントをヒットできますが、エミュレーターで実行されていないため、すべての Azure 呼び出しが失敗します。

スタートアップ プロジェクトをクラウド プロジェクトに設定すると、エミュレーターが起動し、Visual Studio がデバッグを終了し、Web ロールが起動されません。

ここで何が欠けていますか?Web ページを起動してもエミュレータにアクセスするにはどうすればよいですか?

(補足.. Visual Studio 2012 タグがないのはなぜですか??)

4

3 に答える 3

2

MVC Web ロールを使用して Azure プロジェクトを作成したところ、問題なくコントローラー アクションでブレークポイントに到達できました。確認事項:

  1. RoleEntryPoint から派生したクラスを含む MVC プロジェクトに WebRole.cs ファイルがありますか?
  2. MVC プロジェクトを表す Azure プロジェクトの Roles フォルダーにノードはありますか?
  3. Azure プロジェクトを実行すると、Compute and Storage エミュレーター アイコンがタスク バーの通知領域に表示されますか?
  4. Azure プロジェクトの ServiceDefinition.csdef ファイルには、MVC プロジェクト名と一致する属性を持つ Web ロール ノードが含まれていますか?

WebRole name="MvcWebRole1" vmsize="Small"

簡単なテストとして、MVC Web ロールを使用して新しい Azure プロジェクトを作成し、ビューを返す単一のアクションを持つコントローラーを追加して、そこにブレークポイントを配置します。次に、Azure プロジェクトを "スタートアップ プロジェクト" として設定します。すべてが正しく機能している場合は、Azure プロジェクトをデバッグするときにブレークポイントに到達する必要があります。

于 2013-06-13T04:54:43.173 に答える
2

これはあなたの質問に直接答えるものではありませんが、私は常に自分のプロジェクトがエミュレータの外で実行されるようにしています。何よりも、これにより開発の効率が大幅に向上します。

Azure 呼び出しが失敗する問題を回避するために使用できる非常に基本的な方法の 1 つは、依存性注入フレームワーク (Unity など) を使用し、 と のようなインターフェイスを両方とも実装する と を作成するLocalConfigurationManagerことAzureConfigurationManagerですIConfigurationManager。インスタンス番号や構成設定などの Azure はLocalConfigurationManager、ハードコードされた番号/設定を返すだけで、AzureConfigurationManager実際には Azure を呼び出します。

トリックは、Web.Debug.Config および Web.Prod.Config ファイルを使用して (または、#IF DEBUGC# プリコンパイラ ステートメントを使用して)、ビルド構成に応じて実装を変更することです。

于 2013-06-13T03:50:30.917 に答える
1

すべての Azure SDK をアンインストールして再インストールしましたが、役に立ちませんでした。

このリンク

Azure のデバッグ: IIS ワーカー プロセスへのデバッガーのアタッチ中にエラーが発生しました

失敗の原因となったエラーを探す場所を教えてくれたので、このリンクにたどり着きました:

http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/07fe087e-4ac3-4c4f-bd62-4fccff4afd45

The ACL on the Windows Azure registry entries were not in "canonical order".  
All you have to do is fix that and this error goes away.  
These are the steps I took:

1.)  regedit, navigate to HKLM\Software\Microsoft\Windows\Windows Azure

2.)  Right-click, choose "Permissions".  You will get a warning that the 
     security information is incorrect and you get a button labelled "Re-Order". 
     Click this and the security information then shows up as normal.

3.) Follow the same steps for the Windows Azure AppFabric and Windows Azure Emulator 
    registry entries in the list after the Windows Azure entry.

Problem Solved!

Windows\Windows Azure ではなく、HKLM\Software\Microsoft\Windows Azure でキーを見つけたことに注意してください。

于 2013-06-13T15:52:20.143 に答える