C# 如何在运行时自托管asmx web服务?

C# 如何在运行时自托管asmx web服务?,c#,web-services,unit-testing,asmx,functional-testing,C#,Web Services,Unit Testing,Asmx,Functional Testing,我有一个web服务需要进行一些单元/功能测试。由于这些测试应该是自包含的,因此我无法在本地IIS上手动托管此服务:理想情况下,测试应该在运行时启动并托管服务。有没有办法做到这一点?从服务中提取业务逻辑并进行测试。另外,不要将ASMX用于新开发。使用WCF或WebAPI。我也不能这样做:如果提取业务逻辑,则返回的数据的格式(命名空间/序列化)与从生产服务器中的webservice返回的格式不同。我必须使用asmx,因为这是应用程序维护。您可以将CodeCrasher所说的业务逻辑移动到自己的服务中

我有一个web服务需要进行一些单元/功能测试。由于这些测试应该是自包含的,因此我无法在本地IIS上手动托管此服务:理想情况下,测试应该在运行时启动并托管服务。有没有办法做到这一点?

从服务中提取业务逻辑并进行测试。另外,不要将ASMX用于新开发。使用WCF或WebAPI。我也不能这样做:如果提取业务逻辑,则返回的数据的格式(命名空间/序列化)与从生产服务器中的webservice返回的格式不同。我必须使用asmx,因为这是应用程序维护。您可以将CodeCrasher所说的业务逻辑移动到自己的服务中,并返回一个自定义响应类型,然后将其映射到您的asmx响应中。我没有运气这样做。相反,我决定从命令行(PS)
和“C:\Program Files\IIS Express\iisexpress.exe”/path:d:\SoapSandbox\Service\/port:62455
运行IIS Express,并在开发或CI运行期间保持其运行。在我的例子中,它是无状态的,所以测试不会影响它。