首先新建wcf项目(WcfService1), 按照下面的步骤转换成支持REST
(1)
如果没有Global.asax 则新建, 内容如下:
需要新建两个文件 Global.asax 和 Global.asax.cs
1,用文本在项目下面添加文件 Global.asax 文件里面添加下面一行即可
<%@ Application Codebehind="Global.asax.cs" Inherits="WcfService1.Global" Language="C#" %>
2,用文本在项目下面添加类: Global.asax.cs
using System;
using System.ServiceModel.Activation;
using System.Web;
using System.Web.Routing;
namespace RESTService1
{
public class Global : HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes();
}
private void RegisterRoutes()
{
// Edit the base address of Service1 by replacing the "Service1" string below
RouteTable.Routes.Add(new ServiceRoute("Service1", new WebServiceHostFactory(), typeof(Service1)));
}
}
}
将上面两个文件包含到项目里面
需要引用包: System.ServiceModel.Activation.dll
(2)
web.config 修改为如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
<serviceMetadata httpGetEnabled="true"/>
<!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint helpEnabled="true" automaticFormatSelectionEnabled="true" defaultOutgoingResponseFormat="Json" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</modules>
<!--
若要在调试过程中浏览 Web 应用程序根目录,请将下面的值设置为 True。
在部署之前将该值设置为 False 可避免泄露 Web 应用程序文件夹信息。
-->
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
实际上是在<system.serviceModel>节点里面添加:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint helpEnabled="true" automaticFormatSelectionEnabled="true" defaultOutgoingResponseFormat="Json" />
</webHttpEndpoint>
</standardEndpoints>
在<system.webServer>节点里面添加
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</modules>
(3)
在接口里面的方法上添加
[WebGet(UriTemplate = "getData?value={value}", ResponseFormat = WebMessageFormat.Json)]
上面是get的添加方法,post例子:
[WebInvoke(UriTemplate = "getData", Method = "POST", RequestFormat = WebMessageFormat.Json)]
例如:
[ServiceContract]
public interface IService1
{
[WebGet(UriTemplate = "getData?value={value}", ResponseFormat=WebMessageFormat.Json)]
[OperationContract]
string GetData(int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
// TODO: 在此添加您的服务操作
}
发布到IIS (假如地址为: http://192.168.100.119:88/ )
在浏览器里面输入下面的连接看看
http://192.168.100.119:88/Service1/help
分享到:
相关推荐
- **WCFRestService**: 这可能是服务的实现,包含服务接口定义、服务实现类和配置文件。 - **WCFRestServiceTest**: 这是测试客户端,可能包含了发送HTTP请求、解析响应和验证结果的代码。 通过对这两个文件的详细...
安装**WcfRestService40(CS).vsix** 文件后,用户在Visual Studio 2010中就可以直接创建符合RESTful原则的服务,从而提高开发效率。 **WCF REST服务的关键概念:** 1. **服务合同(Service Contract)**:定义了...
在"**wcfrest的实现**"中,我们将探讨如何使用WCF构建RESTful服务。以下是一些关键知识点: 1. **配置服务**: 创建一个WCF服务,首先需要定义一个接口,该接口标记为`[ServiceContract]`。对于REST服务,每个操作...
总结起来,WCF REST服务在ASP.NET中的应用提供了一种高效、灵活的方式来构建Web API,使得开发人员能够快速创建面向资源的、基于HTTP的接口,便于客户端(如JavaScript应用、移动应用等)调用。通过理解并掌握这些...
本文将详细解析如何在WCF REST服务中实现raw类型的表单数据处理,并通过源码实例进行深入探讨。** **一、WCF REST基础知识** 1. **服务契约**:定义服务接口,包含服务要暴露的操作。在WCF REST中,可以使用`...
REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,以简洁、无状态、可缓存的方式进行数据交互。在.NET框架中,WCF(Windows Communication Foundation)服务可以通过...
### 使用WCF开发REST服务:全面解析与实践指南 #### 关于HTTP与REST的初步探讨 REST(Representational State Transfer)是一种设计风格,用于构建基于HTTP协议的网络互联系统。它强调通过简单的规则和原则来创建...
在本文中,我们将深入探讨如何将ReactJS与MVC(Model-View-Controller)和WCF(Windows Communication Foundation)REST服务结合使用,为初学者提供一个全面的入门指南。我们将涉及的技术栈包括SQL用于数据库操作,...
本主题将深入探讨如何使用WCF REST API结合JavaScript实现文件上传功能,这对于现代Web应用来说是一个常见且重要的需求。 首先,我们要理解WCF REST API。REST(Representational State Transfer)是一种基于HTTP...
**标题:“WCF REST服务中对JSONP的支持”** **描述:**该主题涉及如何在Windows Communication Foundation (WCF) REST服务中实现JSONP(JSON with Padding)支持,以允许跨域数据交换,这对于Web应用程序的灵活性...
REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,它基于HTTP协议,使得数据可以通过URI(Uniform Resource Identifier)进行访问。在WCF中实现RESTful服务,可以极大地提高Web服务...
在IT行业中,Web服务是应用程序之间进行通信的一种方式,而WCF(Windows Communication Foundation)和REST(Representational State Transfer)是两种常见的Web服务技术。本文将深入探讨这两种服务的实现,以及它们...
WCF REST(Representational State Transfer)使得WCF能够支持RESTful服务,提供更轻量级、更灵活的接口。本文将详细探讨如何在WCF REST 4.0中实现基于表单的身份验证(SetAuthCookie)以及自定义授权策略。 基于...
**蒋金楠老师的WcfServices REST** 在IT行业中,WCF(Windows Communication Foundation)是微软推出的一种面向服务的架构,用于构建高度可互操作、可靠且安全的服务。REST(Representational State Transfer)是一...
WCF REST 服务使得开发人员可以方便地构建符合REST原则的服务,这些服务能够返回JSON或XML格式的数据,非常适合Web和移动应用程序的消费。 **创建WCF REST服务** 1. **启动新项目**:首先,我们需要在Visual ...
在分布式系统开发中,Windows Communication Foundation (WCF) 是Microsoft提供的一种强大的服务导向架构,用于构建高度互操作的服务。本实例主要探讨的是如何在Silverlight应用程序中调用WCF服务,以及解决由此产生...
本资料包中的"**WebCast20101012_PDF**"可能是一份详细的讲义,涵盖了如何使用WCF构建REST服务的基本概念、步骤和最佳实践。讲义可能会讲解RESTful服务的设计原则,如URI设计、HTTP动词的使用、状态码的意义等,以及...
在IT行业中,Windows Communication Foundation(WCF)是微软推出的一种用于构建分布式应用程序的...通过学习和分析这些源码,开发者可以更好地掌握WCF服务的创建、配置和使用,为后续的Web服务开发打下坚实的基础。
标题中的“从WCF Rest Services迁移到Web API 2-属性路由的基础”表明这是一个关于将基于Windows Communication Foundation (WCF)的RESTful服务转换到ASP.NET Web API 2,并重点介绍Web API 2中的属性路由的技术文章...