BasicHttpService 示例演示如何使用 Windows Communication Foundation (WCF) REST 编程模型实现基于 HTTP 的基于 RPC 的服务(通常称为“POX”(普通旧 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,该操作将处理请求正文中包含字符串的 HTTP POST 请求(例如 XML 格式)。 请注意,可以分别使用MethodUriTemplate和属性自定义请求的 HTTP 方法和 URI 格式。
App.config 文件配置 WCF 服务,默认情况下使用WebHttpEndpoint,其HelpEnabled属性设置为true。 因此,WCF 基础结构会创建一个基于 HTML 的自动帮助页,该页 http://localhost:8000/Customers/help 提供有关如何构造对服务的 HTTP 请求以及如何使用服务的 HTTP 响应的信息。
Program.cs演示如何使用 WCF 通道工厂调用服务和处理响应。 请注意,这只是访问 WCF 服务的一种方法。 还可以使用其他 .NET Framework 类(如 HttpWebRequest 和 WebClient)访问服务。
该示例包含一个自承载服务和一个在控制台应用程序中运行的客户端。 当控制台应用程序运行时,客户端向服务发出请求,并将相关信息从响应写入控制台窗口。
使用此示例
打开基本 HTTP 服务示例的解决方案。 启动 Visual Studio 2012 时,必须以管理员身份运行示例才能成功执行。 为此,请右键单击 Visual Studio 图标,然后从上下文菜单中选择“ 以管理员身份运行 ”。
按 Ctrl+Shift+B 生成解决方案,然后按 Ctrl+F5 在不调试的情况下运行控制台应用程序。 此时会显示控制台窗口,并提供正在运行的服务的 URI 以及正在运行服务的 HTML 帮助页的 URI。 随时可以通过在浏览器中键入帮助页的 URI 来查看 HTML 帮助页。 运行示例时,客户端将写入当前活动的状态。
按任意键终止示例。