我知道每个实例只能有1个Web角色,但这也适用于Background角色吗?更详细的是,1个实例可以运行后台角色和Web角色吗?
我看到Azure如何定期检查我的工作者角色的状态,但是如何?
没有方法RoleEntryPoint可以做到这一点,我正在看看Microsoft.WindowsAzure.ServiceRuntimeILSpy的课程,但我没有看到任何相关的东西.
任何的想法?
谢谢.
一些背景......
我们第一次冒险进入Azure,并试图以婴儿步骤进行.目前,我们的第一个应用程序将成为工作者角色,监视队列以处理请求(例如发送电子邮件或执行一些屏幕抓取),我们只需从我们的内部部署MVC应用程序和WCF服务插入队列.我们稍后会将MVC应用程序和WCF服务移至Azure.
我们的开发工作流程基本上是这样的(稍微修改一些不重要的方式):
正如您所知,我们有许多内部托管版本的应用程序,供内部支持人员在达到生产之前进行攻击.我希望这些对Azure的依赖程度相当低.我不需要完成服务器依赖性,所以我们将继续使用Azure队列和其他一些机制,因为它们很容易继续使用,但我们不希望我们的构建服务器必须部署到Azure对于这些环境中的每一个(并且支付所有托管费用).
那么,我们如何才能合理地在我们实际测试部署到Azure的代码的方式上部署我们的工作者角色内部部署?
建议的一个选项是我们将worker角色创建为包装器/外观,并在类库中完成所有实际工作,这是我们的计划.但是,允许我们"托管"这一操作的后续操作是创建第二个包装器/外观应用程序,它执行与工作者角色相同的工作,只是以我们可以将其作为计划任务或窗口运行的方式服务器.最终,我不喜欢这个选项,因为整个项目在进入分段之前从未进行过测试.
是否有可能在我们创建第二个包装器/外观应用程序时执行类似的操作,而不是调用它实际引用的类库并调用Run()worker角色中的函数?
我可以将工作者角色添加到我正在部署到Azure网站的标准MVC4网站吗?我还没有看到有关如何向这些部署添加辅助角色的任何文档.
我希望我不必将整个项目重建为云项目,将MVC4网站转换为Web角色,然后添加新的工作角色......是这样的吗?如果是这样,有没有人这样做是否成功?我有一个非常大的网站,我不想重新打包到一个新项目.
我有兴趣在Azure上托管mongoDB.我相信我有几个选项来确切如何在Azure上托管数据库:虚拟机或工作者角色.每个选项的优缺点是什么?更具体地说,每种方法在维护,配置,可扩展性,易于使用.net和成本方面有何不同.以后可以轻松切换到其他选项吗?
关于我正在创建的内容的一些细节(尽管我很乐意听到基于不同情况的选项的一般优点/缺点):Azure网站将访问数据库.该网站将是ASP.net MVC Web API站点休息服务.我不希望流量到服务,因此db,每分钟超过100个资源请求,至少开始.该数据库相对较小,在可预见的未来远低于10,000个记录.
在使用WCF服务构建我的第一个基于AZURE的应用程序的过程中,我偶然发现了一些示例,其中人们展示了如何在Worker角色中托管WCF服务.
比如在这些文章中:
http://www.codeproject.com/Articles/188464/Host-WCF-Services-in-an-Azure-Worker-Role http://code.msdn.microsoft.com/windowsazure/CSAzureWCFServices-20c7d9c5
非常简单的问题,有人可以解释一下在工作者角色中托管WCF服务需要哪些用例?这样做的动机/优势是什么?
是否可以以编程方式生成辅助角色的新实例?我有一个工作者角色,它依赖于一些服务总线队列,它抓取消息并将数据放入表存储,SQL数据库并发送通知.我需要能够根据SB队列大小添加更多实例,因为它们将来可以逐渐接收更多的消息.我可以从我的代码中控制它吗?在那种情况下如何?
我有时会遇到以下形式的代码:
while (true) {
//do something
Thread.Sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是否被认为是好的或坏的做法,如果有任何替代方案.
通常我会在服务的主要功能中"找到"这样的代码.
我最近在windows azure worker角色的"运行"功能中看到了具有以下形式的代码:
ClassXYZ xyz = new ClassXYZ(); //ClassXYZ creates separate Threads which execute code
while (true) {
Thread.Sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)
我假设有更好的方法来阻止服务(或天蓝色工作者角色)退出.有人对我有建议吗?
我已经远远地看了解答案.在Visual Studio 2013中,我可以轻松地创建WebRole和WorkerRole解决方案,但在VS 2015中,我似乎只能创建一个网站和WebJob.
WebRole和WorkerRole已被删除吗?如果没有,你可以向我解释它在哪里 - 或者为什么它会丢失?
azure-worker-roles azure-web-roles azure-webjobs visual-studio-2015
据我所知,Azure Worker角色是在名为WaWorkerHost.exe的Host应用程序的帮助下运行的,还有另一个名为WaHostBootstrapper.exe的应用程序,用于检查WaWorkerHost.exe是否正在运行,如果没有,它将运行WaWorkerHost.exe.
如何快速重新启动Worker角色?我可以重启机器工作者角色正在运行并等待几分钟或选择以下传统方法:
Taskkill/im/f WaWorkerHost.exe
并等待几分钟让WaHostBootstrapper.exe启动,但这非常低效和缓慢.是否有任何(即时)方法重新启动辅助角色?
我可以运行类似下面的内容并期望与WaHostBootstapper.exe类似的结果或还有其他考虑因素吗?
WaWorkerHost.exe {MyAzureWorkerRole.dll}