我认为最初的问题提出的非常糟糕,要获得令人满意的答案,您需要清楚地说明所有细节。
首先,您使用的是哪个版本的 Visual Studio?由于什么都没说,我假设它是带有 SP1 的最新版本 VS2010。
假设您有一个包含两个项目的 Visual Studio 解决方案,一个是 WCF 服务库,另一个是 WCF 应用程序,两者都是使用默认项目模板创建的,无需任何手动调整。
- WCF 服务库将有一个 app.config 文件,其中包含以下行:
简而言之,Visual Studio 2010 (SP1) 默认将 wsHttpBinding 用于 WCF 服务库项目。
- 但是,WCF 服务应用程序项目将有一个不包含显式终结点定义的 web.config 文件,在这种情况下,使用的默认终结点绑定是 basicHttpBinding。
OP 说“当我在这个项目上按 F5 时……”,这是一个非常具有误导性的陈述。“在项目上按 F5”是什么意思?您的意思是您在解决方案树中选择了项目节点,然后按 F5?如果是这种情况,发生的情况将始终取决于解决方案中将哪个项目设置为启动项目(而不是当前在 Visual Studio UI 中选择了哪个项目节点)。
如果 WCF Service Application 项目是启动项目,按 F5 不会导致 WCF 测试客户端运行,而是会导致项目的文件夹显示在 IE 中。
如果 WCF 服务库项目是启动项目,则会运行 WCF 测试客户端,这只是因为在项目属性窗口的调试部分,启动选项默认如下: /client:"WcfTestClient 。可执行程序”