.NET与Azure云服务的集成实践

随着.NET版本的不断更新,应用程序中的一些功能需要通过Web服务来实现,以便充分利用完整的.NET库。Azure云服务就是一个很好的例子,它提供了一个在线的商业逻辑和数据存储平台。本文将介绍一个使用Silverlight作为前端,Azure提供后端服务的应用程序的开发过程。

项目预算有限,因此选择Azure作为后端服务提供商,不仅可以在开发阶段免费使用,而且托管成本将与网站的成功程度挂钩。然而,处理预发布软件意味着需要面对更多的挑战和问题,例如WCF服务在Azure开发环境中的配置问题。

WCF服务配置问题

在运行Azure实验室时,WCF实验室无法正常工作,因为开发环境没有正确地托管服务,并且WCF元数据没有正确返回。在这里,要感谢David Burela和他的博客House-o-blog,他提供了一种方法来解决开发环境中的问题,使得WCF服务能够正常工作。

本文将展示如何修改Azure服务训练套件练习3:托管WCF服务,以确保它能够在开发环境中正常工作。

打开在练习2中创建的项目,或者打开位于C:\AzureServicesKit\Labs\BuildingWindowsAzureServices\Ex03-HostingWCFService\begin\的begin.sln解决方案文件。

如果关闭了Visual Studio,请确保以管理员身份运行。可以通过开始菜单中的所有程序,找到Microsoft Visual Studio 2008,右键点击并选择“以管理员身份运行”。

在解决方案资源管理器中,右键点击RDCompute_WebRole节点,选择“添加”然后选择“新建项”。在“添加新项”对话框中,选择WCF服务模板,将名称更改为MessageLogger.svc,然后点击“添加”。

打开IMessageLogger.cs文件,在文本编辑器中,删除现有的DoWork方法,并替换为LogMessage方法。代码如下:

public interface IMessageLogger { [OperationContract] void LogMessage(string message); }

打开MessageLogger.svc.cs文件,在文本编辑器中,删除现有的DoWork方法,并替换为以下代码实现LogMessage方法。

public void LogMessage(string message) { MessageHelper.SaveMessage(message); }

打开Web.config文件,在文本编辑器中找到RDCompute_WebRole.MessageLogger服务配置,在services部分的system.serviceModel内。将单个端点的绑定属性从wsHttpBinding更改为basicHttpBinding。更改后的端点配置应如下所示:

<endpoint address="" binding="basicHttpBinding" contract="RDCompute_WebRole.IMessageLogger"> <identity> <dns value="localhost" /> </identity> </endpoint>

右键点击ASP.NET项目(AzureWCFDemo_WebRole)并将其设置为启动项目。

右键点击MessageLogger.svc文件并选择“在浏览器中查看”。当Internet Explorer启动时,复制地址栏中显示的地址。

启动新的Visual Studio实例,通过选择文件,新建项目来创建一个控制台客户端项目。

在解决方案资源管理器中,右键点击MessageGenerator项目节点,选择“添加服务引用”。粘贴从Internet Explorer实例中复制的地址到“添加服务引用”对话框中,点击“发现”。将命名空间更改为RDService并点击“确定”。

在主函数中添加以下代码:

using (RDService.MessageLoggerClient client = new RDService.MessageLoggerClient()) { Console.WriteLine("Enter your messages ('quit' to exit)"); while (true) { try { string message = Console.ReadLine(); if (message.Equals("quit", StringComparison.CurrentCultureIgnoreCase)) break; client.LogMessage(message); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }

返回运行ASP.NET应用程序的Visual Studio实例,并停止调试ASP.NET应用程序。

右键点击Azure项目并将其设置为启动项目,然后开始调试。开发环境应该开始运行并托管WCF服务。当Internet Explorer启动时,注意端口号。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485