Azure開發(fā)者任務(wù)之八:使用WCF Service Web Role
原創(chuàng)在本文中,我們將會(huì)在local development fabric上創(chuàng)建一個(gè)WCF服務(wù)角色,然后在一個(gè)控制臺(tái)應(yīng)用程序中使用它。
WCF服務(wù)角色可以讓我們創(chuàng)建一個(gè)WCF服務(wù),并且把它托管在Windows Azure中。在本文中,我們將會(huì)創(chuàng)建一個(gè)WCF服務(wù)角色,把它托管在local development fabric上,然后在一個(gè)控制臺(tái)應(yīng)用程序中使用它。在下一篇文章中,我們將會(huì)把這個(gè)WCF服務(wù)遷移到Azure門戶中。
首先
1,創(chuàng)建一個(gè)新項(xiàng)目
2,導(dǎo)航到“Cloud”標(biāo)簽
3,創(chuàng)建Windows Azure項(xiàng)目
4,在給出的選項(xiàng)中選擇WCF服務(wù)角色
如果你看一下解決方案資源管理器,你會(huì)發(fā)現(xiàn)這個(gè)WCF服務(wù)角色項(xiàng)目的結(jié)構(gòu)和文件與正常創(chuàng)建的WCF服務(wù)應(yīng)用程序完全相同。它包含:
1,IService1.cs(服務(wù)契約)
2,Service1.svc.cs(服務(wù)定義)
3,Web.config(EndPoint的配置)
我們可以按照我們的需求來修改這些文件,這和我們平時(shí)在一個(gè)WCF服務(wù)應(yīng)用程序中做的事情沒有什么兩樣。
讓我們來修改服務(wù)契約:
IService1.svc
using System.ServiceModel;
namespace WCFServiceWebRole1
{
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
}
}
然后,修改服務(wù)定義:
Service1.svc.cs
namespace WCFServiceWebRole1
{
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
}
}
在Web.Config中保留默認(rèn)的配置。
確保你已經(jīng)把Windows Azure項(xiàng)目設(shè)置成啟動(dòng)項(xiàng)目了,然后運(yùn)行這個(gè)應(yīng)用程序。在瀏覽器中,你會(huì)得到如下錯(cuò)誤信息:
忽略這個(gè)錯(cuò)誤信息,然后把一個(gè)URL添加到“Service1.svc”中,這個(gè)URL應(yīng)該是http://127.0.0.1:81/Service1.svc。“Service1.svc”是服務(wù)定義的名字。添加以后,你會(huì)在瀏覽器中得到通常的WCF服務(wù)消息
要在一個(gè)控制臺(tái)客戶端中測(cè)試這個(gè)WCF服務(wù)角色,需要:
1,創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序項(xiàng)目
2,使用指定的URL(http://127.0.0.1:81/Service1.svc)來添加服務(wù)引用
現(xiàn)在,我們編寫一個(gè)正常的服務(wù)調(diào)用:
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConsoleApplication14.ServiceReference1;
namespace ConsoleApplication14
{
class Program
{
static void Main(string[] args)
{
Service1Client proxy = new Service1Client();
var result = proxy.GetData(99);
Console.WriteLine(result);
Console.ReadKey(true);
}
}
}
現(xiàn)在,當(dāng)你運(yùn)行這個(gè)應(yīng)用程序的時(shí)候,你也許會(huì)得到下面這個(gè)異常:
要解決上面這個(gè)異常,我們必須要編輯“App.Config”文件。我們需要修改這個(gè)配置文件:
“127.0.0.1”代表“localhost”。也許這個(gè)控制臺(tái)應(yīng)用程序不能解析“127.0.0.1”,所以,我們把它改成“localhost”:
現(xiàn)在,運(yùn)行這個(gè)應(yīng)用程序,我們會(huì)得到如下輸出:
這里,我們需要注意的一個(gè)行為是,有時(shí),在把“127.0.0.1”改成“localhost”以后,你可能還是會(huì)得到那個(gè)超時(shí)異常。在我以后的文章中,我會(huì)深入研究一下這個(gè)意料之外的行為。
原文名:Windows Azure for Developers Task 8: Working with WCF Service Web Role 作者: Dhananjay Kumar
【本文乃51CTO精選譯文,轉(zhuǎn)載請(qǐng)標(biāo)明出處!】
【編輯推薦】
- 微軟公布云計(jì)算平臺(tái)Azure收費(fèi)模式細(xì)節(jié)
- 云計(jì)算意在長(zhǎng)遠(yuǎn),微軟云計(jì)算服務(wù)Windows Azure已經(jīng)啟用
- 技術(shù)透析:Windows Azure Platform框架與組成
- 微軟Windows Azure Platform技術(shù)解析
- 走近微軟云:SQL Server到Azure數(shù)據(jù)同步
- 當(dāng)微軟Azure遭遇亞馬遜EC2:五大關(guān)鍵區(qū)別
- Windows Azure云計(jì)算平臺(tái)新增五大功能
- 云計(jì)算前途光明 Azure用戶數(shù)突破31000
- 如何把應(yīng)用程序部署到Windows Azure中