如何从.NET客户端应用程序进入WCF Rest服务?

时间:2011-04-26 19:17:02

标签: wcf visual-studio-2010 rest

我正在Visual Studio 2010中开发一个解决方案,该解决方案具有在IIS中托管的WCF RESTful服务(此时实际上是Cassini)和原型ASP.NET MVC客户端。我有一切都在沟通,但在调试客户端时无法进入服务。

我有一个“服务代理”类,我的控制器使用它来处理服务。服务代理使用以下代码进行实际服务调用:

var factory = new WebChannelFactory<IServiceContract>("theEndpointConfigName");
var channel = factory.CreateChannel();

var result = channel.CallTheService();

我可以在最后一行设置一个断点,但点击F11不会像我期望的那样让我进入服务。

两个项目都存在于同一个解决方案中,我已通过修改响应数据验证了服务是否正确调用。

我错过了什么?

3 个答案:

答案 0 :(得分:3)

Visual Studio调试器无法跨越进程边界。您可以附加到客户端进程或服务器进程,但不能同时附加到两者。

以下是一些建议:

  • 首先调试客户端代码。如果没有错误,那么第二次重现错误,但调试服务代码而不是客户端代码。
  • 为调试目的创建两个单独的解决方案,一个仅包含客户端项目,另一个仅包含服务项目。然后,您可以并排运行两个IDE实例中的两个解决方案。
  • 添加单元测试。如果“客户端”是一个简单的单元测试方法而不是完整的客户端,那么在服务中找到错误要容易得多。

答案 1 :(得分:2)

我实际上偶然发现了答案。我要感谢克里斯蒂安在不知不觉中指引我走向正确的方向。你关于debuger附加到一个或另一个过程但不是两个的声明让我思考。在我看来,我将Web项目设置为我的解决方案中唯一的启动项目。作为一个百灵鸟,我决定尝试在启动列表中添加我的WCF服务应用程序。中提琴!这就是全部!

所以现在我有两个项目启动。我已经更改了我的WCF服务应用程序中的设置,因此它在启动时不显示页面。现在一切都按照我的预期运作。

感谢正确方向的刺激!

答案 2 :(得分:-1)

查看下面的CodeProject文章,了解如何调试WCF REST Servive。

http://www.codeproject.com/Tips/213007/Debug-WCF-REST-Service