基本 HTTP 服务
BasicHttpService 示例演示如何使用 Windows Communication Foundation (WCF) REST 编程模型实现基于 HTTP 和基于 RPC 的服务,该服务一般称为“POX”(Plain Old XML) 服务。 此示例由两个组件组成:一个自承载 WCF HTTP 服务 (Service.cs) 和一个创建服务并对该服务进行调用的控制台应用程序 (Program.cs)。
示例详细信息
WCF 服务公开 2 个操作:EchoWithGet
和 EchoWithPost
,后者返回作为输入传递的字符串。
EchoWithGet
操作使用 WebGetAttribute 添加批注,后者指示该操作处理 HTTP GET
请求。 由于 WebGetAttribute 不显式指定 UriTemplate,因此该操作需要使用名称为 s
的查询字符串参数来传递输入字符串。 请注意,可以使用 UriTemplate 属性来自定义服务所需的 URI 格式。
EchoWithPost
操作使用 WebInvokeAttribute 添加批注,后者指示该操作不是 GET
操作(它具有副作用)。 由于 WebInvokeAttribute 不显式指定 Method
,因此该操作处理在请求正文中具有字符串(例如,以 XML 格式)的 HTTP POST
请求。 请注意,可分别使用 Method 和 UriTemplate 属性来自定义该请求的 URI 的 HTTP 方法和格式。
App.config 文件使用 WebHttpEndpoint 属性设置为 HelpEnabled 的默认 true
来配置 WCF 服务。 因此,WCF 基础结构在 http://localhost:8000/Customers/help
创建一个基于 HTML 的自动帮助页,该帮助页提供有关如何构造该服务的 HTTP 请求以及如何使用该服务的 HTTP 响应的信息。
Program.cs 演示如何将 WCF 通道工厂用于对服务和进程响应进行调用。 请注意,这只是访问 WCF 服务的一种方式。 还可以使用其他 .NET Framework 类(如 HttpWebRequest 和 WebClient)来访问该服务。
此示例包含一个自承载服务和一个客户端,它们都在一个控制台应用程序内运行。 在控制台应用程序运行时,客户端会对服务进行请求,并将响应中的相关信息写入控制台窗口。
使用此示例
打开基本 HTTP 服务示例的解决方案。 在启动 Visual Studio 2012 时,必须以管理员身份运行才能成功执行该示例。 通过右键单击 Visual Studio 图标并从上下文菜单选择“以管理员身份运行”来完成此操作。
按 Ctrl+Shilf+B 生成解决方案,然后按 Ctrl+F5 运行控制台应用程序而不进行调试。 将出现控制台窗口,它提供了正在运行的服务的 URI,以及该服务的 HTML 帮助页的 URI。 可随时通过在浏览器中键入 HTML 帮助页的 URI 来查看该帮助页。 在示例运行时,客户端将写入当前活动的状态。
按任何键可终止示例。