Asp.net 使用和测试Web服务的最佳方法

Asp.net 使用和测试Web服务的最佳方法,asp.net,Asp.net,我不确定你是否把你的网络服务放在一个单独的项目中,但目前我们所有的网络服务都在我们的WAP项目中的不同文件夹下……对我来说,这简直是一团糟 无论如何,除了单元测试、模拟等,我还创建了一个新的Web项目。我想使用另一个web项目的服务进行测试 但我意识到,当我将一个项目reference添加到另一个web项目中时,我开始收到第三方控件之类的引用错误,可能是因为这个测试web项目中的web.config没有一些相同的键 显然,这是错误的做法。使用服务而不必重构当前存储服务的物理方式的简单方法是什么?

我不确定你是否把你的网络服务放在一个单独的项目中,但目前我们所有的网络服务都在我们的WAP项目中的不同文件夹下……对我来说,这简直是一团糟

无论如何,除了单元测试、模拟等,我还创建了一个新的Web项目。我想使用另一个web项目的服务进行测试

但我意识到,当我将一个项目reference添加到另一个web项目中时,我开始收到第三方控件之类的引用错误,可能是因为这个测试web项目中的web.config没有一些相同的键


显然,这是错误的做法。使用服务而不必重构当前存储服务的物理方式的简单方法是什么?

如果您的源项目是web服务项目,您可以创建一个新的asp.net web应用程序项目,右键单击并将服务引用添加到您的服务项目中

从那里,有很多方法来测试服务。您可以创建一个页面,浏览所有不同的服务方法,并生成一个显示结果的网页,或者创建一个页面,允许您输入测试每个服务方法的输入

这里是MSDN网页,用于开始使用web服务,它们很可能有一些很好的教程。

我还建议将调查WCF服务作为另一个服务选项


当然,单元测试可能是最好的选择。在visual studio中,您可以添加单元测试项目来测试web服务的类,并以这种方式测试各个方法。

不要将其添加为项目引用,而是将web服务添加为web引用以使用它。为了实现这一点,必须以某种方式部署服务(即使它就在那个盒子上)

另一种方法是使用VS2008,您可以通过这种方式测试web服务(非常有效,我有VS2K8 Pro):

对于旧版本,这里有一篇文章:

如果您当前的web应用程序项目正在提供服务,您可能希望将该服务代码迁移到web服务项目中

将提供服务的代码/类提取到新项目中,并将提供服务的方法装饰为

[WebMethod()]
通过这种方式,您可以保留当前的代码库,只需重新安排项目并添加一些属性即可将其作为服务公开

另一种方法是将web服务添加到当前的web应用程序中。 它可以与您的web应用程序共存,您可以创建web方法来公开您想要的任何服务


您的测试项目可以使用这些服务中的任何一种,并测试各个方法。

为了澄清,源项目是一个Web服务项目,对吗?还是一个普通的asp.net项目?普通的WAP项目。我遇到的问题是,我将WAP项目的dll添加到我的测试WAP项目中,但最后我还必须添加与我的WAP项目(具有.asmx的项目)相同的引用,否则它将全部崩溃。这对我来说,只有像这些天的任何其他项目一样,将服务放在一个单独的项目中才有意义!如果.asmx在另一个web项目中,那么“服务引用”呢?我是否将另一个WAP项目包括在我的解决方案中,该解决方案包含我的新测试WAP项目,或者我是否可以通过dll或其他最低限度的方式引用它?您可以使用它添加web引用。打开“添加服务引用”后,只需转到“高级”按钮并添加一个web引用。引用正在查找已部署的服务。它需要运行web服务的URL。如果您有VS 2008 Pro,您可以在部署之前使用上面提供的链接进行测试。。。。