我有一个WCF服务的解决方案,工作正常。我在解决方案中添加了一个小型控制台应用程序,需要在同一解决方案中为服务提供服务引用。 它发现服务但显然无法连接到它,因为服务没有运行。 在Visual Studio 2010中我如何在解决方案中运行服务,同时在同一解决方案中添加服务引用?
答案 0 :(得分:6)
假设客户端应用程序与WCF服务项目位于同一解决方案中,请单击客户端应用程序并选择“添加服务引用”。
显示一个对话框,您可以通过单击右上角标有“发现”的按钮来选择服务。
假设绑定已正确设置并可用于WCF服务(通过app.config文件或类似文件),IDE将自动为您托管服务。 - 请注意,app.config应位于WCF服务项目中,除非解决方案中的另一个项目中已有指定的主机。
如果托管该服务存在任何问题,则会出现一个新对话框,其右侧列为您的服务端点提供“错误”。单击错误行将解释为什么存在问题并希望帮助您解决问题。
答案 1 :(得分:2)
不正确。 WCF服务项目可以在IDE中自行托管,以便添加服务引用
是的,如果带有服务的项目是解决方案的主要项目,但如果我们想从同一个解决方案启动客户端应用程序,我们需要将主项目设置为客户端应用程序,因此wcf应用程序将不会启动本身,所以我们需要托管wcf的辅助类。
答案 2 :(得分:0)
如果您正在尝试构建一个在同一解决方案中自行承载WCF项目的控制台应用程序,请使用“添加引用”(而不是“添加服务引用”),在解决方案下,您将在解决方案中找到该服务。
答案 3 :(得分:0)
在Solution Explorer中右键单击项目,然后选择Unload project
再次右键单击该项目(此时节点将以(不可用)结束)并选择编辑xxxxx.csproj
在第一部分中,添加以下行: {3D9AD99F-2412-4246-B90B-4EAA41C64699}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
保存并关闭文件 通过再次右键单击重新加载项目,然后选择“重新加载”。 然后,您应该能够使用“在解决方案中发现服务”功能
运行应用程序并将调试程序附加到wcfsvchost.exe
答案 4 :(得分:-1)
http://msdn.microsoft.com/en-us/library/system.servicemodel.servicehost.aspx
您需要托管您的服务。创建一个将在同一解决方案中执行此操作的类