Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
本文是Windows Azure入门教学的第三篇文章。
本文将会引导大家创建一个简单的Worker Role程序,并且部署在Windows Azure模拟器里。
在开始本教学之前,请确保你从Windows Azure 平台下载下载并安装了最新的Windows Azure开发工具。本教学使用Visual Studio 2010作为开发工具。
步骤一:创建解决方案和项目
以管理员权限启动Visual Studio 2010,并且新建一个Windows Azure Project项目。
在弹出窗口出现后,按照下图所示,分别点击Worker Role,“>”按钮。该步骤会在右边窗口中生成一个新的Worker Role项。当你把鼠标移动至该Worker Role项之上时,会出现两个图标。点击左边的铅笔图标,你就可以修改Worker Role的名字;点击右边的叉形图标则可以移除该Role。决定了Role的种类,数量,以及名字之后,点击OK以创建解决方案。
步骤二:观察并分析生成的项目
项目结构如下图所示:
其中自动被设置成启动项目的是一个Cloud Service项目,你可以通过蓝色圆球图标来识别一个Cloud Service项目。单纯的一个Cloud Service项目只是一个Role的载体,针对每个Role,Visual Studio也会为你创建一个对应的项目,例如,为Worker Role生成的就是一个Class Library项目。无论何时,请确保Cloud Service项目是启动项目。
打开WorkerRole.cs文件,并且观察WorkerRole类:
public class WorkerRole : RoleEntryPoint
{
public override void Run()
{
// This is a sample worker implementation. Replace with your logic.
Trace.WriteLine("SimpleWorkerRole entry point called", "Information");
while (true)
{
Thread.Sleep(10000);
Trace.WriteLine("Working", "Information");
}
}
public override bool OnStart()
{
// Set the maximum number of concurrent connections
ServicePointManager.DefaultConnectionLimit = 12;
// For information on handling configuration changes
// see the MSDN topic at https://go.microsoft.com/fwlink/?LinkId=166357.
return base.OnStart();
}
}
每个Worker Role都包含一个WorkerRole类,作为程序的入口点,类似于Console项目中的Program类。这个类必须继承自RoleEntryPoint,并且必须被命名为WorkerRole。
WorkerRole.OnStart方法可以被类比成Console程序中的Main方法,它会在一个Role启动时被调用,通常被用于做一些初始化工作。默认生成的代码为你初始化了诊断(Diagnostics)以及配置相关的代码。
WorkerRole.Run方法会在一个Worker Role初始化完毕,开始运行时被调用。一旦Run方法被跳出,一个Worker Role就会被终止(你可以重写OnStop方法来做一些善后工作,这个方法并没有被自动生成)。
通常Worker Role被用于批量处理任务,所以自动生成的代码的控制逻辑中包含了一个无限循环,每个循环用于处理单个任务,在处理之前当前线程会睡上10秒。请注意你并不一定要跟着自动生成的控制逻辑走,你完全可以修改生成的代码,来撰写你自己的控制逻辑。例如,你也许会创建一个定时器,每隔一定时间来执行一个任务。
本文假设你并未修改自动生成的代码,自动生成的代码执行的任务就是每隔10秒纪录一条Trace信息。
步骤三:运行程序
现在我们已经可以在Windows Azure模拟器中运行这个Worker Role程序了。在第一篇教学中,我们已经让大家认识了Windows Azure模拟器,在今后的文章中还会有更详细的说明,这里省略相关内容。
按下F5开始调试程序,在任务栏中找到Windows Azure模拟器的图标,右键点击该图标,点击Show Compute Emulator UI打开UI界面。
项目启动后,每隔10秒,你都会看到一句Information: Working的消息,这就说明我们的Worker Role中在顺利运行中:
请注意发布之后观察Trace信息的方式和在Windows Azure模拟器中是不一样的。有关详细信息,我们会在今后的文章中说明。