在本文中,咱們將會在local development fabric上建立一個WCF服務角色,而後在一個控制檯應用程序中使用它。瀏覽器
WCF服務角色可讓咱們建立一個WCF服務,而且把它託管在Windows Azure中。在本文中,咱們將會建立一個WCF服務角色,把它託管在local development fabric上,而後在一個控制檯應用程序中使用它。在下一篇文章中,咱們將會把這個WCF服務遷移到Azure門戶中。測試
首先spa
1,建立一個新項目code
2,導航到「Cloud」標籤orm
3,建立Windows Azure項目資源
4,在給出的選項中選擇WCF服務角色rpc
若是你看一下解決方案資源管理器,你會發現這個WCF服務角色項目的結構和文件與正常建立的WCF服務應用程序徹底相同。它包含:get
1,IService1.cs(服務契約)string
2,Service1.svc.cs(服務定義)it
3,Web.config(EndPoint的配置)
咱們能夠按照咱們的需求來修改這些文件,這和咱們平時在一個WCF服務應用程序中作的事情沒有什麼兩樣。
讓咱們來修改服務契約:
IService1.svc
using System.ServiceModel;
namespace WCFServiceWebRole1
{
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
}
}
而後,修改服務定義:
Service1.svc.cs
namespace WCFServiceWebRole1
{
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
}
}
在Web.Config中保留默認的配置。
確保你已經把Windows Azure項目設置成啓動項目了,而後運行這個應用程序。在瀏覽器中,你會獲得以下錯誤信息:
忽略這個錯誤信息,而後把一個URL添加到「Service1.svc」中,這個URL應該是http://127.0.0.1:81/Service1.svc。「Service1.svc」是服務定義的名字。添加之後,你會在瀏覽器中獲得一般的WCF服務消息
要在一個控制檯客戶端中測試這個WCF服務角色,須要:
1,建立一個控制檯應用程序項目
2,使用指定的URL(http://127.0.0.1:81/Service1.svc)來添加服務引用
如今,咱們編寫一個正常的服務調用:
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);
}
}
}
如今,當你運行這個應用程序的時候,你也許會獲得下面這個異常:
要解決上面這個異常,咱們必需要編輯「App.Config」文件。咱們須要修改這個配置文件:
「127.0.0.1」表明「localhost」。也許這個控制檯應用程序不能解析「127.0.0.1」,因此,咱們把它改爲「localhost」:
如今,運行這個應用程序,咱們會獲得以下輸出:
這裏,咱們須要注意的一個行爲是,有時,在把「127.0.0.1」改爲「localhost」之後,你可能仍是會獲得那個超時異常。在我之後的文章中,我會深刻研究一下這個意料以外的行爲。
原文名:Windows Azure for Developers Task 8: Working with WCF Service Web Role 做者: Dhananjay Kumar