Wshttpbinding翻译成基本的

时间:2011-01-17 19:29:01

标签: wcf wshttpbinding

我有一个由两个项目组成的WCF服务:

  1. WCF服务库
  2. WCF Web应用程序
  3. 第一个项目有一个由MyService实现的服务调用IMyService。它是使用WS绑定配置的,如果我在这个项目上按F5,WCFTestClient将呈现WS绑定。 在Web应用程序中,我有一个带有此标记的.svc文件,名称相同

     <%@ ServiceHost Language="C#" Debug="true" Service="[Namespace].MyService" %>
    

    如果我在这个项目上按F5,它会渲染一个BasicHttpBinding。客户端也一样。 为什么呢?

3 个答案:

答案 0 :(得分:2)

我刚刚检查过WCF服务库项目默认创建的app.config WSHttpBinding用于默认服务。当您运行WCFTestClient时,它始终使用此本地配置。如果要使用WCFTestClient测试其他服务,则必须将其配置添加到此配置中。此配置从不用于其他任何内容。

WCF服务应用程序使用web.config。在WCF 4.0中,它使用简化配置,该配置根据某些预定义条件添加端点。默认情况下,它会将BasicHttpBinding端点添加到通过HTTP公开的所有服务,并使用公共ServiceHostFactory

答案 1 :(得分:0)

您的配置文件是如何配置的?如果将端点配置为使用wshttpbinding,则应使用该端点。

你介意在这里添加一些代码(包括配置文件中的绑定和端点详细信息),所以我们可以看看吗?

谢谢, 罗伯托洛佩斯。

答案 2 :(得分:0)

我认为最初的问题构成非常糟糕,为了得到一个令人满意的答案,你需要清楚地说明所有细节。

首先使用哪个版本的Visual Studio?由于没有说什么,我会假设它是最新版本VS2010 SP1。

假设您有一个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服务应用程序项目是启动项目,按F5将不会导致WCF测试客户端运行,而是会导致项目文件夹显示在IE中。

如果WCF服务库项目是启动项目,则将运行WCF测试客户端,这仅仅是因为在项目属性窗口的调试部分中,启动选项默认情况下具有以下内容: /client:"WcfTestClient.exe“

相关问题