【问题标题】:Self hosting asp.net RESTful webservice自托管 asp.net RESTful 网络服务
【发布时间】:2014-05-09 06:58:55
【问题描述】:

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

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

  1. 即时修改 Web 服务代码并进行测试。
  2. 无需再编译新的 webservice dll,将其放入 IIS 的 bin 文件夹并重置 IIS。

类似于自托管 WCF 服务,例如

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

上面的 sn-p 我取自http://www.codeproject.com/Tips/622260/WCF-Self-Hosting-with-Example section 1 [self hosting]

如果需要,以下是我的 web.config 的 sn-p

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

【问题讨论】:

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


【解决方案1】:

如果这对你有帮助,请告诉我:

如果您创建一个新的 WCF 服务应用程序项目,您将可以访问该项目的 Properties 窗口中的 Web 选项卡,您可以在其中直接托管您的在 IIS 上进行项目,每次调试或运行时,您的服务都会更新版本。

【讨论】:

  • 这不是 WCF 服务。您可以将我的服务代码视为在 IIS 下运行的 http 处理程序。现在在功能测试中,如果我向我的处理程序发出网络请求,我希望该处理程序在同一进程下实例化
猜你喜欢
  • 2014-10-26
  • 1970-01-01
  • 2020-03-11
  • 2013-07-10
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
  • 1970-01-01
相关资源
最近更新 更多