2009-09-02 61 views
1

我不确定您是否将Web服务放在单独的项目中,但目前我们所有的Web服务都在我们的WAP项目下的各种文件夹下....对我来说这是一个皇家一塌糊涂。无论如何,除了单元测试,嘲讽等,我创建了一个新的Web项目。我想要使​​用其他Web项目的服务之一进行测试。消费和测试Web服务的最佳方式

但我意识到,当我添加项目引用到其他Web项目时,我开始获取像第三方控件的引用错误,可能是因为此测试Web项目中的web.config没有一些相同的键。

显然这是错误的路要走。利用这项服务的简单方法不需要重构我们现在如何在物理上存储服务?

+0

为了澄清,源项目是一个Web服务项目的权利?或者它是一个普通的旧的asp.net项目? – TJB 2009-09-02 01:03:51

+0

纯WAP项目。我遇到的问题是我将WAP项目的dll添加到我的测试WAP项目中,但最后我不得不添加相同的引用,以使我的WAP项目(具有.asmx的项目)具有相同的引用,否则这些引用都会崩溃。 – PositiveGuy 2009-09-02 01:06:07

回答

2

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

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

这里是MSDN页面开始使用Web服务,他们很可能有一些很好的教程。 http://msdn.microsoft.com/en-us/library/t745kdsh.aspx

我也建议调查WCF服务,其他服务选项 http://msdn.microsoft.com/en-us/netframework/aa663324.aspx

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

+0

对我来说,只有服务能够像其他任何项目一样在一个单独的项目中才有意义! – PositiveGuy 2009-09-02 01:14:14

1

不要将其作为项目引用添加,请将Web服务添加为Web引用以便使用它。为此,尽管服务必须以某种方式进行部署(即使它只是在该框上)。

另一种方法是使用VS2008,你可以测试Web服务这样(的伟大工程,我有VS2K8临): http://msdn.microsoft.com/en-us/library/ms243399.aspx

对于旧版本这里是一个文章: http://msdn.microsoft.com/en-us/magazine/cc163830.aspx

+0

如果.asmx位于其他Web项目中,那么“服务引用”如何?我是否将其他WAP项目纳入了我的解决方案中,该解决方案包含我的新测试WAP项目,或者我可以仅通过dll或其他方式引用它? – PositiveGuy 2009-09-02 01:50:00

+0

您可以使用它来添加Web引用。打开添加服务参考后,进入高级按钮并添加一个Web引用。该参考正在寻找已部署的服务。它会需要Web服务运行的URL。 – klabranche 2009-09-02 02:19:58

+0

如果你有VS 2008 Pro,你可以在使用上面提供的链接进行部署之前进行测试.... – klabranche 2009-09-02 02:20:48

0

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

要么提取所提供的服务到新项目的代码/类和装饰所提供的服务为

[WebMethod()] 

这样的方法,你可以保留当前的代码库,只是重新安排项目并添加一些属性以将其作为服务公开。

另一种方法是将Web服务添加到当前的Web应用程序。 它可以与您的Web应用程序并排生活,并且您可以创建Web方法来展示您想要的任何服务。

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