Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf Wshttpbinding已转换为basic_Wcf_Wshttpbinding - Fatal编程技术网

Wcf Wshttpbinding已转换为basic

Wcf Wshttpbinding已转换为basic,wcf,wshttpbinding,Wcf,Wshttpbinding,我的WCF服务由两个项目组成: WCF服务库 WCF Web应用程序 第一个项目有一个由MyService实现的服务调用IMyService。它是通过使用WS-binding配置的,如果我在这个项目上按F5,WCFTestClient将呈现WS-binding。 在web应用程序中,我有一个.svc文件,其中包含同名的标记 <%@ ServiceHost Language="C#" Debug="true" Service="[Namespace].MyService" %>

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

  • WCF服务库
  • WCF Web应用程序
  • 第一个项目有一个由MyService实现的服务调用IMyService。它是通过使用WS-binding配置的,如果我在这个项目上按F5,WCFTestClient将呈现WS-binding。 在web应用程序中,我有一个.svc文件,其中包含同名的标记

     <%@ ServiceHost Language="C#" Debug="true" Service="[Namespace].MyService" %>
    
    
    
    如果我在这个项目上按F5键,它会呈现一个BasicHttpBinding。在客户端也是如此。
    为什么?

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

    您是否介意在这里添加一些代码(包括配置文件中的绑定和端点详细信息),以便我们可以查看一下

    谢谢,
    Roberto Lopes。

    我刚刚检查了WCF服务库项目在默认情况下是否使用用于默认服务的
    WSHttpBinding
    创建app.config。运行WCFTestClient时,它始终使用此本地配置。如果要使用WCFTestClient测试其他服务,则必须将其配置添加到此配置中。此配置从未用于任何其他用途


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

    我认为原始问题提出得非常糟糕,要获得满意的答案,您需要清楚地说明所有细节

    首先,您使用的是哪个版本的Visual Studio?既然没说什么,我就假设它是带有SP1的最新版本VS2010

    假设您有一个VisualStudio解决方案,它有两个项目,一个是WCF服务库,另一个是WCF应用程序,这两个项目都是使用默认项目模板创建的,没有任何手动调整

    • WCF服务库将有一个app.config文件,其中包含以下行:
    简而言之,默认情况下,VisualStudio2010(SP1)将wsHttpBinding用于WCF服务库项目

    • 但是,WCF服务应用程序项目将有一个不包含显式端点定义的web.config文件,在这种情况下,使用的默认端点绑定是basicHttpBinding
    OP说“当我在这个项目上按F5时……”,这是一个非常误导的说法。 “在项目上按F5”是什么意思?您的意思是在解决方案树中选择了项目节点,然后按F5键?如果是这种情况,发生的情况将始终取决于在解决方案中将哪个项目设置为启动项目(而不是当前在VisualStudioUI中选择了哪个项目节点)

    如果WCF服务应用程序项目是启动项目,则按F5不会导致WCF测试客户端运行,而是会导致项目的文件夹显示在IE中

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

    如果您想了解详细信息,请使用评论。感谢您提供的有用答案。您能告诉我如何强制web项目使用WS端点分发服务吗?如果我尝试这样做,它仍然指向基本地址,我会收到SOAP错误匹配错误(1.1而不是1.2)