我正在尝试使用单个asp.net应用程序在云解决方案中测试Azue诊断监视器.
每次尝试启动诊断监视器时都会出现异常:
CloudStorageAccount account = CloudStorageAccount.Parse("UseDevelopmentStorage=true");
Write(account.TableEndpoint.AbsoluteUri);
// Get default initial configuration.
var config = DiagnosticMonitor.GetDefaultInitialConfiguration();
config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined;
config.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
// Start the diagnostic monitor with the modified configuration.
DiagnosticMonitor.Start(account, config); // Exception
Run Code Online (Sandbox Code Playgroud)
例外说:
System.ArgumentException was unhandled by user code
Message=Directory C:\Users\Me\Documents\Visual Studio 2010\Projects\CloudDebuggingTest\CloudDebuggingTest\bin\Debug\CloudDebuggingTest.csx\roles\CloudDebuggingTest.Web\diagnostics\x64\monitor does not exist.
Source=Microsoft.WindowsAzure.Diagnostics
StackTrace:
at Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.ValidateStartupInfo(DiagnosticMonitorStartupInfo startupInfo) in :line 0
at Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.StartWithExplicitConfiguration(DiagnosticMonitorStartupInfo startupInfo, DiagnosticMonitorConfiguration initialConfiguration) in :line 0
at Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start(CloudStorageAccount storageAccount, DiagnosticMonitorConfiguration initialConfiguration) in :line 0
at CloudDebuggingTest.Web._Default.StartDiagnostics() in C:\Users\Me\Documents\Visual Studio 2010\Projects\CloudDebuggingTest\CloudDebuggingTest.Web\Default.aspx.cs:line 48 …Run Code Online (Sandbox Code Playgroud) 我有一些Azure Compute Emulator无法正常重启的问题.要解决此问题,我想csrun /devfabric:stop在Visual Studio解决方案中添加对预构建步骤的调用.
问题是csrun.exe位于C:\Program Files\Windows Azure SDK\v1.4\bin我的机器上,该路径不在%PATH%目录列表中.我不想在我的解决方案中对该路径进行硬编码.
有没有办法推断使用某些环境变量或类似的路径?
我有一个WCF服务和一个我需要同时运行的WorkerRole.但是,我只能将其中一个设置为StartUp项目.
可以做些什么?
我一直在阅读,看起来开发结构和生产窗口天蓝云织物之间存在一些差异,但我无处可找到开发结构上的功能列表以及与云结构不比较的内容.
举例来说,如看到这里:
云中的所有Windows Azure环境都是相同的; 测试或临时区域没什么特别之处.但是,本地开发结构和云结构之间存在差异,这就是在云中测试应用程序的重要原因.
(强调我的)
我已经在很多地方看到了对这些差异的暗示,但同样......没有什么可以说有什么不同.
有谁知道描述这些差异的任何资源?
如何自动部署到Azure Compute Emulator?
我们正在设置内部QA环境以"托管"我们的Azure应用程序进行测试,并决定尝试通过Azure Compute Emulator执行此操作.(目前,我们正在为这些环境使用Azure存储(在线),但我们稍后可能决定在本地托管存储组件.但这是另一个问题.)
我看到一些很棒的工具可以自动部署到在线Azure,例如Windows Azure平台PowerShell Cmdlet甚至一些听起来很棒的付费选项.但是,我看到绝对没有人谈论这些用于QA目的的内部托管.我意识到一个明显的选择是在本地部署Azure项目时在本地shell项目中托管功能(例如工作者角色的Windows服务),但我们选择沿着Azure模拟器的路线前进.
因此,我们如何自动部署到模拟器?VS2010显然可以部署到它,所以它必须是可能的.
PS我们现在正在使用TeamCity,但这可能会改变.但这应该不重要.我希望这个部署主要基于脚本,所以我们可以使用任何构建软件.
在我的构建管道中,我想.cspkg打包并使用csrun实用程序在Azure仿真器中本地启动服务并针对它运行一些E2E测试。是否可以按.cspkg原样运行或仅csx在云项目中有文件夹时才能运行?
谢谢。
当我尝试使用单个辅助角色启动我的Azure项目时,我得到了臭名昭着的"角色实例花费的时间超出预期"错误.以前它曾经工作过,它在两个调试会话之间没有任何明显的原因就开始失败了.
我尝试使用新的Azure项目和默认的工作者角色创建一个全新的解决方案,但也无法启动.
我发现了很多其他SO问题和论坛帖子讨论这个话题,但是大多数都已经过时了,他们的建议都没有.
我在事件日志中找不到相关消息,这是我发现的唯一错误消息C:\Users\username\AppData\Local\dftmp\EmulatorRuntimeLogs\ErrorRuntime.log,它包含许多这样的行:
[00006892:00014472, 2014/10/16, 18:40:45.247, ERROR] Failed to create FSRM quota manager instance.
Run Code Online (Sandbox Code Playgroud)
Compute Emulator中角色的输出无限期地显示以下日志:
[fabric] Role Instance: deployment24(4).MySolution.MyProject.MySolution.MyProject.0
[fabric] Role state Busy
[fabric] Role state Aborted
[fabric] Role state Busy
[fabric] Role state Aborted
[fabric] Role state Busy
[fabric] Role state Aborted
[fabric] Role state Busy
...
Run Code Online (Sandbox Code Playgroud)
您对Azure SDK的最新2.4版本有什么可能导致此错误的建议吗?
我对此感到疑惑,因为我想找到一种方法来创建一个不同的后期构建事件,无论我是在编译器中运行还是在模拟器中运行,还是我正在编译并发布到云端.
我不知道是否有更简单的方法,但我认为如果我能找到当前设置(云或本地)的保存位置,我可以基于此分支我的构建后事件
谢谢
azure post-build-event azure-worker-roles azure-compute-emulator
您是否曾尝试在具有完整IIS和多个角色实例的Windows Azure模拟器中运行托管服务?几天前,我注意到一次只有一个Web角色的多个实例在IIS中启动.以下屏幕截图说明了行为,屏幕截图前面的消息框显示了此行为的原因.尝试在IIS管理器中启动其中一个已停止的网站时出现消息框.
示例云应用程序包含两个Web角色:MvcWebRole1和WCFServiceWebRole1,每个都配置为使用三个实例.我的第一个想法是:"当然!在真正的天蓝色世界中不会发生端口冲突,因为每个角色实例都是一个自己的虚拟机.它无法在模拟器中运行!" 但经过一些研究和分析azure计算模拟器的许多部分后,我发现计算模拟器为每个角色实例创建了一个唯一的IP(在我的例子中从127.255.0.0到127.255.0.5).这篇MSDN博客文章(http://blogs.msdn.com/b/avkashchauhan/archive/2011/09/16/whats-new-in-windows-azure-sdk-1-5-each-instance-in-any微软员工Avkash Chauhan的-role-gets-its-own-ip-address-to-match-compute-emulator-close-the-cloud-environment.aspx)也描述了这种行为.在得出结论后,我提出了以下问题:为什么计算模拟器(更准确地说是DevFC.exe)没有将相应角色的IP添加到每个网站的绑定信息中?
我手动和tadaaaaa为每个网站添加了IP:每个网站都可以在没有任何冲突的情况下启动.下一个屏幕截图显示了突出显示已更改的绑定信息.
再一次:为什么模拟器不能为我做这件事?我写了一个小的静态助手方法,在每个角色开始时为我做绑定扩展.也许有人想要使用它:
public static class Emulator
{
public static void RepairBinding(string siteNameFromServiceModel, string endpointName)
{
// Use a mutex to mutually exclude the manipulation of the iis configuration.
// Otherwise server.CommitChanges() will throw an exeption!
using (var mutex = new System.Threading.Mutex(false, "AzureTools.Emulator.RepairBinding"))
{
mutex.WaitOne();
using (var server = new Microsoft.Web.Administration.ServerManager())
{
var siteName = string.Format("{0}_{1}", Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CurrentRoleInstance.Id, siteNameFromServiceModel);
var site = server.Sites[siteName];
// Add the IP of the role to the binding information …Run Code Online (Sandbox Code Playgroud) 今天连续几次发生在我身上.我使用模拟器按F5在Visual Studio 2013中调试我的Windows Azure项目,项目将构建,但没有启动浏览器.也没有构建错误,它只是完成构建,看起来它已准备好启动浏览器,但随后就停止了.
最后,我在Visual Studio的左下角状态栏中看到一条消息,上面写着"Compute emulator shutdown".然后我在我的任务栏中覆盖了Azure图标,它说"存储模拟器已启动",但"计算模拟器已关闭".