标签: azure-worker-roles

使用 Windows Azure 创建网络爬虫

我想创建一个网络爬虫,它获取某个网站的内容并将其保存在 blob 存储中。在 Azure 上执行此操作的正确方法是什么?我应该启动一个 Worker 角色,并使用 Thread.Sleep 方法使其每天运行一次吗?

我还想知道,如果我使用这个辅助角色,如果我创建它的两个实例,它会如何工作?我注意到使用“Compute Emulator UI”命令“Trace.WriteLine”同时适用于两个实例,有人可以澄清这一点吗?

我使用 php 创建了相同的爬虫,并将 cron 作业设置为每天启动一次脚本,但需要 6 个小时才能获取全部内容,这就是我想使用 Azure 的原因。

web-crawler azure azure-worker-roles

3
推荐指数
1
解决办法
6039
查看次数

在Azure辅助角色中启动可执行文件:路径问题

我尝试向Azure工作者角色添加可执行文件,并从代码中调用它.但我不是百分之百确定路径的样子.我将Visual Studio中的可执行文件添加到我的worker角色项目中,设置为content并始终复制.在我的工作角色中,我打电话

Process.Start(Path.Combine(Environment.GetEnvironmentVariable("RoleRoot"), "Executable.exe"));
Run Code Online (Sandbox Code Playgroud)

结果如何

AppDomain未处理的异常异常:系统无法在System.Threading.ThreadHelper.ThreadStart()中找到System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)[...]中指定的文件.

我的azure项目的名称是"AzureProject",我的worker角色的名称是"QueueWorker",可执行文件"Executable.exe".我想这条路是错的.

.net azure azure-worker-roles

2
推荐指数
1
解决办法
2966
查看次数

实例重启时,辅助工作者角色e:\ approot文件夹的内容消失

从Azure门户中重新启动Windows Azure辅助角色实例时,是否删除了e:\ approot文件夹的内容?我有一个提升的启动任务,在添加一些注册表设置之前检查此文件夹中是否存在文件.这在过去是有效的,但现在失败了,因为它预期找到的文件在门户引发的重启之后不再存在.如果我从启动任务中执行'shutdown'命令,则实例重新启动,但e:\ approot的内容不受影响.

azure azure-worker-roles

2
推荐指数
1
解决办法
2941
查看次数

Azure:辅助角色在c:\或本地存储上写入

我很怀疑.

我有一个代码创建一个文件"foo.txt",然后使用UploadFile()将其复制到blob.
如果我不想要和天蓝色的概念我不能在"c:\"中创建这个文件?
我不得不在ServiceDefinition.csdef中使用本地存储,并在azureLocalResource.RootPath中创建它.

但是有ac:\驱动器用于写入(ad:\用于操作系统,ae:\用于代码),不是吗?
有什么用?
我们可以在启动任务中使用它吗?

我问,因为我相信代码今天用c:\ util运行.
我无法找到为什么类似的代码不能在新的工作角色中工作.
(这是文件和目录问题,而不仅仅是文件)

[答案]
我可以在c中创建此文件:但强烈建议使用本地存储API,因为驱动器号并不总是相同(例如重启后).
本地存储只是使用当前实例的读写驱动器的捷径.
在启动任务的特定情况下,我们可以通过两种方式访问​​此存储:使用ac#program/script中的azure API(请参阅本主题)或使用环境变量(请参阅此主题).

azure azure-worker-roles

2
推荐指数
1
解决办法
5821
查看次数

async关键字如何与Azure Worker Roles一起使用?

我正在玩Azure Worker Roles.调用异步WinRT方法并使用await关键字时,服务执行结束.我猜这是因为await返回控制权给调用者,这是服务内部的链接.也许调用者在Run()完成执行并假定服务已完成或出现故障之前不期望返回控制权?

我不确定,是否有人知道是否async打算与Azure Worker Roles一起使用?

c# asynchronous azure azure-worker-roles

2
推荐指数
1
解决办法
963
查看次数

如何使用Timer替换Azure辅助角色中的Thread.Sleep(...)?

有很多人说使用a Timer而不是Thread.Sleep(...)in Azure Worker Role.没有这方面的问题.

我正在努力理解的是如何编写代码.

目前,我有以下(pseduo代码)

_timer.Elapsed += (sender, args) => DoWork();

public override void Run()
{
    while(true)
    {
        DoWork();
    }
}

public void DoWork()
{
    try
    {
        _timer.Stop();

        // Now - do stuff ....

     }
     catch(....) { ... }

     _timer.Start()
}
Run Code Online (Sandbox Code Playgroud)

会发生什么,是代码进入DoWork()方法一次,然后DoesStuff(tm)..罚款..启动计时器(比如......间隔30秒),然后退出该方法.

然后,它返回到main Run()循环中的main 方法.所以它立即回来并DoWork()再次进入方法..而不是等待计时器将其关闭.

所以我不确定如何Thread.Sleep(...)用Timers 替换任何.

有线索吗?

澄清

我不想退出Run()方法:)我很高兴永远保持循环.我坚持使用的是替换标准Thread.Sleep(...)调用(阻塞线程)并将其替换Timer为大多数人建议的.

更新

请不要链接或建议我cancelSource.Token.WaitHandle.WaitOne();作为解决方案使用.这不是我想在这里实现的.请注意帖子标题!

.net c# timer azure azure-worker-roles

2
推荐指数
1
解决办法
2516
查看次数

BrokeredMessage Deseralization带有不需要的String

通过ServiceBus任何自定义传递代理消息DataContractSerializer[as Default XML Serializer Take Place].

var message = new BrokeredMessage(objMess.MessageBody);
Run Code Online (Sandbox Code Playgroud)

注意: 主要是邮件正文是HTML电子邮件的类型.

但是当在传递给worker角色的消息之后deserialization,我看到一些随机文本被附加在顶部正文中,

var reader = new StreamReader(receivedMessage.GetBody<Stream>());

@string3http://schemas.microsoft.com/2003/10/Serialization/?  .
Rest of Message Body 
Run Code Online (Sandbox Code Playgroud)

我试着给定制DataContractSerializer.但这搞砸了HTML符号.

一些格式化我找到的服务总线消息文章的内容,但仍然找到摆脱模式字符串的方法.

现在我正在substring使用消息体.

c# azure-worker-roles azureservicebus brokeredmessage

2
推荐指数
1
解决办法
2389
查看次数

Azure Compute Service工作人员在扩展后变得"忙碌"

我在Azure中运行了一个具有4个工作实例的服务.当我扩展到5个工作器实例时,已启动的第一个实例进入"忙"状态.这是为什么?放大期间会发生什么?azure会重新运行所有启动任务吗?我很困惑,似乎无法找到任何关于此的文档.

在扩展到5个实例后,第一个实例将其状态更改为:

Busy (Waiting for role to start... Application startup tasks are running. [2014-08-12T18:36:52Z])
Run Code Online (Sandbox Code Playgroud)

并且在那里运行的java进程停止了.为什么会这样?!

任何帮助,将不胜感激.

STARTUP.CMD

REM   Log the startup date and time.
ECHO Startup.cmd: >> "%TEMP%\StartupLog.txt" 2>&1
ECHO Current date and time: >> "%TEMP%\StartupLog.txt" 2>&1
DATE /T >> "%TEMP%\StartupLog.txt" 2>&1
TIME /T >> "%TEMP%\StartupLog.txt" 2>&1

REM enable ICMP
netsh advfirewall firewall add rule name="ICMPv6 echo" dir=in action=allow enable=yes protocol=icmpv6:128,any

ECHO Starting WebService >> "%TEMP%\StartupLog.txt" 2>&1
tasklist /FI "IMAGENAME eq java.exe" 2>NUL | find /I /N "java.exe" >NUL 2>&1 …
Run Code Online (Sandbox Code Playgroud)

azure azure-worker-roles azure-configuration azure-cloud-services

2
推荐指数
1
解决办法
314
查看次数

Azure云服务中的服务定义与服务配置

有谁知道这两者之间有什么区别?我看起来似乎找不到一个清楚描述它们如何不同的页面.微软解释其中两个的方式非常模糊.

定义文档

该文件包含可用于云服务的角色的定义,指定服务端点,以及为服务建立配置设置.

配置文档

指定要为服务中的每个角色部署的角色实例的数量,任何配置设置的值以及与角色关联的任何证书的指纹

azure azure-worker-roles azure-cloud-services

2
推荐指数
1
解决办法
3312
查看次数

没有Web角色的云服务

我想部署仅具有辅助角色的云服务(没有Web角色.Web角色部署为Azure WebSite).可能吗?

PS.为什么我会考虑这个解决方案 - 我需要一个能够发送电子邮件的网站.我将消息放入Web中排队,并以工作者角色获取这些消息,这些消息会发送电子邮件.我尝试在云服务中部署这两种服务,但是Web部署WebSite更加舒适(部署速度更快,能够为本地和远程设置连接字符串).所以,我想只使用worker角色部署服务

azure azure-worker-roles azure-cloud-services

2
推荐指数
1
解决办法
381
查看次数