Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何在Visual Studio 2012中调试Azure web角色?_Visual Studio_Debugging_Azure_Webrole - Fatal编程技术网

Visual studio 如何在Visual Studio 2012中调试Azure web角色?

Visual studio 如何在Visual Studio 2012中调试Azure web角色?,visual-studio,debugging,azure,webrole,Visual Studio,Debugging,Azure,Webrole,我知道这可能是很愚蠢的事情,但我已经在谷歌搜索了2个小时才发现这一点 我有一个新的测试Azure应用程序,我想在Visual Studio中调试它。如果我将启动项目设置为Web角色(MVC)项目,我可以在VS中命中断点,但它没有在模拟器中运行,因此我所有的Azure调用都会失败 如果我将启动项目设置为Cloud项目,emulator将启动,然后VisualStudio将结束调试,我的web角色将永远不会启动 我错过了什么?如何启动我的网页并仍然可以访问模拟器 (旁注..为什么没有Visual S

我知道这可能是很愚蠢的事情,但我已经在谷歌搜索了2个小时才发现这一点

我有一个新的测试Azure应用程序,我想在Visual Studio中调试它。如果我将启动项目设置为Web角色(MVC)项目,我可以在VS中命中断点,但它没有在模拟器中运行,因此我所有的Azure调用都会失败

如果我将启动项目设置为Cloud项目,emulator将启动,然后VisualStudio将结束调试,我的web角色将永远不会启动

我错过了什么?如何启动我的网页并仍然可以访问模拟器


(旁注..为什么没有Visual Studio 2012标记??)

虽然这不能直接回答您的问题,但我始终确保我的项目在模拟器之外运行。如果没有其他原因,这将大大提高开发效率

为了避免Azure调用失败的问题,您可以使用的一个非常基本的实践是使用依赖注入框架(如Unity或其他),并创建
LocalConfigurationManager
AzureConfigurationManager
,这两个框架都实现了一些接口,如
IConfigurationManager
,然后,如果您的代码需要向Azure请求实例号或配置设置等。。。
LocalConfigurationManager
只返回一个硬编码的数字/设置,而real
AzureConfigurationManager
将实际调用Azure


诀窍是使用Web.Debug.Config和Web.Prod.Config文件(或者只使用
#IF Debug
C#precompiler语句)根据构建配置更改实现。

我刚刚创建了一个具有MVC Web角色的Azure项目,并且我能够在控制器操作中无任何问题地命中断点。一些需要检查的事项:

  • MVC项目中是否有WebRole.cs文件,其中包含从RoleEntryPoint派生的类
  • Azure项目的角色文件夹中是否有一个节点代表您的MVC项目
  • 运行Azure项目时,计算和存储模拟器图标是否显示在任务栏的通知区域中
  • Azure项目中的ServiceDefinition.csdef文件是否包含具有与MVC项目名称匹配的属性的Web角色节点
  • WebRole name=“MvcWebRole1”vmsize=“Small”


    作为一个快速测试,请尝试使用MVCWeb角色创建一个新的Azure项目,添加一个具有单个操作的控制器,该操作将返回一个视图并在其中放置一个断点。然后将Azure项目设置为“启动项目”。如果一切正常,您应该在调试Azure项目时点击断点。

    我取消安装并重新安装了所有Azure SDK,但没有效果

    此链接

    告诉我在何处查找导致其失败的错误,这使我找到了以下链接:


    请注意,我在HKLM\Software\Microsoft\Windows Azure下找到了密钥,而不是在Windows\Windows Azure下。

    此外,您是否尝试将调试器附加到w3wp.exe进程?如果使用表存储?你需要模拟器。你不需要在azure emulator中运行你的web应用程序,你只需要启动存储模拟器,这很简单。是的,存储模拟器。。。但我也使用ComputeEmulator,因为首先配置不在web.config中;我还希望尽可能好地模拟生产环境。无论如何,我在调试这个设置时仍然有问题(),这一定是我的环境出了问题。这在我的工作电脑上是失败的,但当我回到家在我的笔记本电脑上试用时,它工作得很好。我必须尝试卸载/重新安装Azure。
    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!