Quick Start - WCF 4.0 RESTful Service Setup
1.建立一个 Asp.net Website / WebApplication
2. 引用 System.ServiceModel 系列的dll
3. 添加以下的类和接口
View Code
[ServiceContract]// define a service contract
interface IPersonService
{
[OperationContract]
Person GetPerson(string id);
[OperationContract]
Person InsertPerson(Person person);
[OperationContract]
Person UpdatePerson(string id, Person person);
[OperationContract]
void DeletePerson(string id);
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] // enablt asp.net compatibility , then wcf service can work in asp.net
public class PersonService : IPersonService
{
[WebGet(UriTemplate = "Person({id})")]
public Person GetPerson(string id)
{
return new Person();
}
[WebInvoke(UriTemplate = "Person", Method = "POST")]
public Person InsertPerson(Person person)
{
return new Person();
}
[WebInvoke(UriTemplate = "Person({id})", Method = "PUT")]
public Person UpdatePerson(string id, Person person)
{
return new Person();
}
[WebInvoke(UriTemplate = "Person({id})", Method = "DELETE")]
public void DeletePerson(string id)
{
}
}
[DataContract] // define a data contract
public class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Age { get; set; }
}
4.配置以下内容在web.config
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
5.注册一个好看点的地址在global.asax
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new ServiceRoute("PersonService", new WebServiceHostFactory(), typeof(PersonService)));
}
如果是MVC Project 那么注册代码如下
routes.Add(new ServiceRoute("Person", new WebServiceHostFactory(), typeof(PersonService)));
好了 一切ok。。。
wcf4.0简化了很多配置。。。。
帮助界面如下所示 (正式的根地址还是: http://localhost:/35034/Personservice )
单个方法的帮助信息就更详细了