如何托管RESTful C#Web服务并对其进行测试

时间:2010-06-09 23:21:37

标签: c# wcf web-services

我需要在C#中创建一个RESTful Web服务。这就是我现在所拥有的:

namespace WebService
{
   [ServiceContract]
   public interface IService
   {
     [OperationContract(Name="Add")]
     [WebGet(UriTemplate = "/")]
      int Add();  
   }

   public class Service:IService
   {
        public int Add()
        {
            // do some calculations and return result
            return res; 
        }
   }
}

现在,我的问题是我如何在一个位置说(http://localhost/TestService)托管此服务,如何在控制台应用程序客户端中测试该服务?

2 个答案:

答案 0 :(得分:1)

要托管服务,WebServiceHost将是更好的选择。查看此文章http://msdn.microsoft.com/en-us/library/system.servicemodel.web.webservicehost.aspx了解其用法。

要在控制台应用程序中测试服务,可以使用HTTPWebRequest / HttpWebResponse类来进行请求/解密响应。请查看此用途http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

对于简单的请求,您也可以使用fiddler(也许在项目的原型设计阶段)

答案 1 :(得分:0)

请参阅此回答here以帮助您入门。

您所要做的就是将其作为控制台应用程序运行,控制台在Main方法/

中运行此代码
RestExample exampleService = new RestExample();

host = new ServiceHost(exampleService);

host.Open();

一定要投入

Console.WriteLine("Press any key to exit . . . .");

Console.ReadKey(true);

host.Close();

这样,您的服务将一直保持开放状态。

请记住,您不必将其作为休息服务启动以测试接口的实现。在RestExample中,您可以针对该类编写单元测试,以确保每个方法按设计执行。将它作为控制台启动是一种选择,但对我来说,更多的是集成测试,而不是单元测试。