自托管asp.net RESTful webservice

时间:2014-05-09 06:58:55

标签: asp.net web-services wcf iis functional-testing

我有一个基于REST的Web服务,它在IIS下运行,名称为" WebHandler"。我通常在IIS下运行webservice,然后编写功能测试代码。

所以每次运行/调试功能测试时,我都必须在IIS下运行webservice。有没有办法在功能测试代码中,我可以以某种方式以编程方式托管web服务,以便web服务是同一进程的一部分(不涉及IIS)?我认为的好处是:

  1. 在飞行中修改webservice代码并测试它。
  2. 不再需要编译新的webservice dll,将其放在IIS的bin文件夹中并重置IIS。
  3. 类似于自托管WCF服务的东西,例如

    using (ServiceHost host = new ServiceHost(typeof(SaleClassLibrary.SaleService), baseAddress))
    {
    ...
    host.Open();
    // do the end-to-end test
    host.Close();
    }
    

    我从http://www.codeproject.com/Tips/622260/WCF-Self-Hosting-with-Example第1部分[自托管]

    获取的上述代码段

    以下是我的web.config的片段(如果需要)

    <system.webServer>
        <handlers>
            <add name="WebHandler" path="*" verb="*" type="Com.Tata.WebHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
        </handlers>
    </system.webServer>
    

1 个答案:

答案 0 :(得分:0)

如果这有助于您,请告诉我们:

如果您创建新的WCF服务应用程序项目,则您可以访问项目的属性窗口中的 Web 标签,您可以在其中直接访问在IIS上托管您的项目,并且每次调试或运行时,您都有更新的服务版本。