我了解您可以在Azure辅助角色上打开端口80并公开运行WCF服务.但是,我遇到了这样一种情况,即以这种方式更有意义,而不是在网络角色中运行.有任何想法吗?
我有一个Azure服务,其中当前已部署了Web角色.我现在需要在项目中添加一个Worker Role来处理一些维护,但是我无法升级服务部署.当我尝试部署包含Web角色和辅助角色的新版本服务时,我收到以下错误.
服务升级包与当前部署的服务之间的服务模型指定的角色数不同.在这种情况下不支持升级.
有没有办法部署我的服务的新版本?
我对此感到疑惑,因为我想找到一种方法来创建一个不同的后期构建事件,无论我是在编译器中运行还是在模拟器中运行,还是我正在编译并发布到云端.
我不知道是否有更简单的方法,但我认为如果我能找到当前设置(云或本地)的保存位置,我可以基于此分支我的构建后事件
谢谢
azure post-build-event azure-worker-roles azure-compute-emulator
我在使用spring.net 4.0开发Web应用程序方面有一定的经验,nhibernate 3.0用于基于ASP.net的Web应用程序.最近我遇到了一种情况,我需要使用spring.net来注入属于WorkerRole
该类的服务依赖项.我正常创建了app.config文件,正如我通常使用的spring.config文件一样.这是为了清楚起见.(我已经排除了根节点)
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web" requirePermission="false" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" requirePermission="false" />
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<spring>
<context>
<!-- Application services and data access that has been previously developed and tested-->
<resource uri="assembly://DataAccess/data-access-config.xml" />
<resource uri="assembly://Services/service-config.xml" />
<resource uri="AOP.xml" />
<resource uri="DI.xml"/>
</context>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />
<parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" />
<parser type="Spring.Aop.Config.AopNamespaceParser, Spring.Aop" />
</parsers>
</spring>
Run Code Online (Sandbox Code Playgroud)
同样这是AOP.xml
<object id="FilterServiceProxy" type="Spring.Aop.Framework.ProxyFactoryObject, Spring.Aop">
<property name="proxyInterfaces" value="Domain.IFilterService"/>
<property name="target" ref="FilterService"/> …
Run Code Online (Sandbox Code Playgroud) 我正在试图弄清楚如何(大致)计算一些我正在考虑创建的工人角色的预期成本.
TLDR;
如果你的工人Sleep(someTime)
/睡觉,azure会向你收取吗?
细节
在Azure的定价页指出他们的定价,每时,每虚拟机大小.
所以为了让我的问题变得简单,我假装我想拥有3名工人,每个工人都将在一个小(A1)实例上.
现在 - 踢球者是这个=>时间!
所以我们也假装,这正是每个工人所做的事情.
Worker 1 : Do-Some-Work-That-Takes-1-Second-Exactly. Sleep(59000);
Worker 2: Do-Some-Work-That-Takes-5-Seconds-Exactly. Sleep(550000);
Worker 3: Do-Some-Work-That-Takes-10-Seconds-Exactly. Sleep(50000);
Run Code Online (Sandbox Code Playgroud)
因此,工人1工作1秒,然后睡眠59秒.工人2:5秒+ 55秒睡觉.工人3:10秒+ 50秒睡眠.
这个想法,每一分钟工人都会"开始",做他们的工作.
**是的我知道实时工作会变化..但是让我们保持这个简单**
那么,对于每个工人,他们会在每分钟(工作+睡眠)或他们工作的时间收费吗?
例如.1秒+5秒+ 10秒=每分钟16秒.= 16*60 =每小时工作960秒
如果一小时内有3600秒......这意味着在我收取1小时"工作"费用之前,它还不到4小时或实际生活时间?
我有一个Azure工作者角色(WR),应该使用以下命令从.cscfg文件中获取它的配置:
var setting = CloudConfigurationManager.GetSetting("My.Setting.Name");
Run Code Online (Sandbox Code Playgroud)
在模拟器中运行这很好,我得到:
Getting "My.Setting.Name" from ServiceRuntime: PASS.
Run Code Online (Sandbox Code Playgroud)
信息.但是,当我发布到我的远程环境时,我得到:
Getting "My.Setting.Name" from ServiceRuntime: FAIL.
Getting "My.Setting.Name" from ConfigurationManager: FAIL.
Run Code Online (Sandbox Code Playgroud)
消息.在Azure管理门户的"CloudServices/Configure"部分中,我可以看到配置中列出的设置,并且设置正确.
我正在使用Azure SDK 2.0
azure azure-worker-roles azure-web-roles azure-configuration
我正在Azure Woker角色中托管WCF服务,就像这样.
我希望能够定期"回收"WCF服务主机.问题是,我假设服务正在运行它自己的应用程序域,而且我也没有办法查询它的任何事件,我也可以共享辅助角色和WCF服务之间的通用数据.
作为参考,这是托管的最小代码:
public override void Run()
{
using(var host = new ServiceHost(typeof(MyService))
{
// Configure host here...
host.Open
while(true)
{
Sleep(1000);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想每24小时以某种方式"重新启动"主机,但我不知道如何实现这一目标.
这两种实现有什么区别,有人可以告诉在哪种情况下使用哪一种?
如果有的话还有利弊吗?提前致谢.
我使用azure SDK 2.9在visual studio 2015 update 2中创建了一个新的云服务解决方案
根据我正在阅读的一本书,它说如果我开始一个工作者角色,它应该打开计算模拟器,我应该能够调试我的代码.
但是我收到此错误:无法直接启动具有类库的输出类型的项目
我确切地知道错误意味着什么,并且在托盘图标上已经启动了计算模拟器.
如何调试辅助角色?
我正在尝试在天蓝色工作角色上使用HostingEnviornment.QueueBackgroundWorkItem在后台执行某些任务,但是我在代码“由于对象的当前状态而导致操作无效”中遇到了异常 。。
我们可以在天蓝色的工作人员角色上使用HostingEnviornment.QueueBackgroundWorkItem吗?如果不能,请帮助我在工作人员角色的后台如何处理流程任务。