我在Windows Azure上运行的应用程序处理来自用户(放入Azure队列)的传入请求,并将它们分配给真实世界的人.
人们有一定的时间来处理请求.如果没有人分配处理请求,我需要转移到一组新人.基本上,我想将这些任务排队,以便在特定时间处理,然后再次处理它们.如果其中一个用户处理任务,我需要将其出列,以便工作人员不再处理它.
我目前正在将WCF服务项目移植到Azure角色.到目前为止,包含该服务的库还托管了一个Quartz.Net JobFactory,用于一些轻量级后台处理(定期清理过时的电子邮件确认令牌).我是否必须将该代码移动到单独的工作者角色中?
我有一个安装旧版Windows服务的辅助角色.如果同时运行多个服务实例,则会出现问题.所以我试图理解这是否会发生(注意我们只运行1个中型实例).
我注意到我们的Azure云服务,我们网站运行的实际VM每周都会被切换/重新映像.我假设 Azure执行此操作的方式是,它使用我们的Web和辅助角色构建新VM,然后在新VM准备就绪时执行从旧VM到新VM的VIP切换.我的问题是,在这个转换期间,服务可以同时在旧VM和新VM上运行吗?或者,在VIP切换之后,Azure是否才启动辅助角色?
那里有很多假设我可以离开,但希望你能得到问题的基本概念.有什么想法吗?提前致谢!
我们在Azure中遇到了SqlBulkCopy的问题.
上下文如下:我们有一个大约有1000万行的表.每行有大约15列.
我们正在将这些数据迁移到我们的新模型中,这需要拆分数据,因此包含15列的1行变为15行.
它在一开始就很完美.目标表现在包含17 767 235行,并且速度非常快.
此时,它开始抛出异常.
我做了一些修改以增加超时并使用批处理,但似乎它完全被阻止了.
这是最初的例外:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.; TraceSource 'WaWorkerHost.exe' event Services.DataMigration.Edmi_IN_0 5/9/2014 2:44 PM 2 1508 280
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) …
Run Code Online (Sandbox Code Playgroud) 我有工作角色,每秒都会对数据库做一些工作.
是否可以初始化DbContext
工作人员何时启动并在工作人员的整个生命周期内使用它?
如何处理数据库连接?如果数据库脱机并重新联机怎么办?我还能使用上下文吗?
我在他们自己的解决方案和存储库中定义了几个 azure 工作者角色项目。为了模拟云环境,我必须在本地运行其中几个工作程序。为每个工作人员打开一个 Visual Studio 实例不是一个可行的选择,我想要一个允许同时工作不同工作人员并能够根据需要扩展每个工作人员角色的解决方案。
有没有办法触发 azure 计算模拟器从命令行启动角色?
如果没有,如何编写一个控制台应用程序来触发工作线程的 onstart、run 和 onstop 方法。在这种情况下,我不确定这样的解决方案对工作者多线程有什么影响,以及是否可以扩展每个工作者角色。
一般来说,是否有在开发机器上模拟复杂云环境的最佳实践(在合理范围内)?
我试图在一个辅助角色中在Azure上托管一个面向外部的WCF服务.
我有一个解决方案在本地工作非常好,但当我尝试将其发布到Azure时,它进入初始化/忙/停循环.
我在互联网上找到的信息说不同的东西:
http://www.theworkflowelement.com/2011/01/worker-role-service-hosting-faq.html(不可能)
http://code.msdn.microsoft.com/WCF-Azure-Worker-Role-on-b394df49(可能与hack)
其他消息来源说这是可能的,但我没有代表发布超过两个链接.
当我尝试发布它时,最后一个挂起.
有人知道怎么做,或者真的不可能吗?以工作者角色托管它会非常好,所以我不必使用Web角色所需的svc和web.config混乱.
这是我正在使用的代码:
[ServiceContract(Namespace = "")]
public interface IMyService
{
[OperationContract]
[WebGet]
string Echo(string s);
}
public class MyService : IMyService
{
public string Echo(string s)
{
return "hey " + s;
}
}
public class TestPasswordValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
}
}
private static void StartService()
{
var endpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["HttpsEndpoint"];
var uri = new Uri(endpoint.Protocol + "://" + endpoint.IPEndpoint + "/myservice");
var host …
Run Code Online (Sandbox Code Playgroud) 我有一个Azure Worker角色,我希望调用管理服务(例如REST API)并收集有关相关服务的信息.但是,当我尝试加载我的证书时,它无法找到它.以下是我遵循的步骤:
1.我使用MakeCert创建了一个证书,并通过门户网站将其注册为我的管理证书
makecert -r -pe -a sha1 -n"CN = MyCnName"-ss My -len 2048 -sp"Microsoft Enhanced RSA and AES Cryptographic Provider"-sy 24 MyCert.cer
2.在我的本地机器上安装了证书,一切正常.在本地运行辅助角色时,我可以毫无问题地调用管理服务.
3.从我的计算机导出证书,并通过门户网站在目标托管服务下注册导出的证书
4.部署角色.角色启动时无法找到证书.
这是我用来查找证书的代码的摘录.
// Open the certificate store for the current user.
var certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); // I also tried localmachine
certStore.Open(OpenFlags.ReadOnly);
// Find the certificate with the specified subject.
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindBySubjectName,
_myConfiguration.SubjectName,
false);
if (certCollection == null || certCollection.Count < 1)
{
// …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种在多个工作者角色实例上拥有"Singleton"模块的方法.我想在Azure中使用队列和多个辅助角色的并行执行模型.
想法是希望有一个"主"实例,也就是说检查新数据,并通过将其添加到队列来处理它,处理来自特殊队列的所有消息,而不是其他任何人处理的,并已将blob存储装置作为虚拟驱动器,具有读/写访问权限.
我将永远只有一个 "主实例".当主实例由于某种原因而关闭时,已经实例化的实例应该很快被"选举"为主实例(几秒钟).这应该在Azure环境用新的实例替换破坏的实例之前发生(大约15分钟).
所以它将是某种自组织,动态的环境.我想根据存储或表数据进行一些锁定.如果我们可以与微处理器术语交谈,有机会设置锁定超时和某种"看门狗"计时器.
有谁知道如何为Azure工作者角色配置Elamh?我已经安装了它,但似乎没有做任何事情 - 当发生异常时它们不会被记录.它在我的MVC项目中完美运行.
是否有任何关于Azure员工与Elamh角色的具体指导?