调试WCF应用程序时未遇到断点

时间:2019-05-20 09:20:45

标签: .net wcf

我有一个WCF应用程序和一个控制台应用程序。

我在单独的文件夹中发布了WCF应用程序。在IIS中添加了虚拟应用程序。

在控制台应用程序中,我向IIS中添加的站点添加了服务参考。

有了这个,我无法调试WCF应用程序,并且断点也没有命中。

我打开了两个VS实例。在一次实例中,我执行了WCF应用程序,在另一个实例中,执行了控制台应用程序。

为什么WCF断点没有达到?

1 个答案:

答案 0 :(得分:2)

出于开发/调试的目的,无需手动将WCF应用程序发布到IIS。托管部分已经内置在Visual Studio中。

如果要将客户端应用程序连接到WCF服务,我可以想到两种方法:

方法1:使用服务参考

这是最快的方法,并且在大多数情况下都是开箱即用的(您已选择此方法)。

您需要一个包含与此项目相似的客户端和服务器项目的解决方案文件:

enter image description here

在“添加服务引用”对话框中,单击“发现”。这将在您的解决方案中寻找WCF服务(不需要启动该服务)。

旁注:如果单击“转到”,则只能找到已启动的服务。

enter image description here

您应该在“服务”部分中看到您的服务,并且地址字段会自动为您填充Visual Studio将用于本地调试的地址。

enter image description here

像往常一样继续添加服务...

Visual Studio将自动更新客户端的app.config文件。

如果仅启动控制台应用程序,Visual Studio还将在后台为您启动服务。无需显式设置断点,只需按F11即可进入服务操作。

方法2:不使用服务引用

单击“添加服务参考”将基于当前数据合同生成代码。如果您更改该定义(类型,操作等),则必须再次生成它。

如果您是客户端和服务的所有者,则可以在运行时使用WCF Channelfactory创建动态代理。

您必须仅将服务合同和数据合同提取到新程序集中,并与客户端和服务器共享。 无需生成任何代码,这样您在编译时将永远是安全的。 有关更多信息,请参见here

由于VS不知道任何服务引用,因此您必须自己启动两个项目。只需在您的解决方案中设置多个启动项目,然后按F5。 但是在这种情况下,您必须在服务应用程序中设置一个断点。