2

我有一个 WCF 4 服务项目。我按 F5 但它只是带我进入http://localhost并显示文件目录。不知道为什么它没有运行 WCF 服务主机。我将我的 WCF 服务项目设置为启动项目。

  <!-- SOAP Binding -->
  <basicHttpBinding>
    <binding name ="soapBinding">
        <security mode="None"></security>
    </binding>
  </basicHttpBinding>

  <!-- Enable RESTful Endpoints-->
  <webHttpBinding>
      <binding name="webBinding"></binding>
  </webHttpBinding>

例如,如果我要将它添加到另一个 C# 项目并通过服务引用添加,这会创建一个 WSDL。这就是为什么我看不到为什么在我指定相同的 url 后测试客户端不会显示任何内容(我刚刚添加到 C# 项目中的那个 DID 创建了一个 wsdl,所以我知道它有效)测试客户端说在我点击后添加好的,但在它说它成功添加它之后,测试客户端 UI 中绝对没有显示任何内容。我在另一台开发机器上试过,他对我的服务也有同样的待遇。

更新 - 我这边关于设置的更多信息:

我们的 WCF 服务项目中的 Web.config

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5"/>
  </system.web>

  <system.serviceModel>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
        <serviceActivations>
            <add relativeAddress="Events.svc" service="OurCompany.API.OurService"/>
        </serviceActivations>
    </serviceHostingEnvironment>

    <bindings>

      <!-- SOAP Binding -->
      <basicHttpBinding>
        <binding name ="soapBinding">
            <security mode="None"></security>
        </binding>
      </basicHttpBinding>

      <!-- Enable RESTful Endpoints-->
      <webHttpBinding>
          <binding name="webBinding"></binding>
      </webHttpBinding>

    </bindings>


    <behaviors>

      <endpointBehaviors>

        <!-- allow XML REST -->
        <behavior name="poxBehavior">
            <webHttp defaultOutgoingResponseFormat="Xml" automaticFormatSelectionEnabled="true"/>
        </behavior>

        <!--<behavior name="jsonBehavior"><enableWebScript/></behavior>-->
        <!-- allow JSON REST -->
        <behavior name="jsonBehavior">
            <webHttp helpEnabled="true" defaultOutgoingResponseFormat="Json"/>
        </behavior>

      </endpointBehaviors>

      <serviceBehaviors>

        <behavior name="defaultBehavior">
            <serviceDebug includeExceptionDetailInFaults="true" />
            <serviceMetadata httpGetEnabled="true" />
        </behavior>

      </serviceBehaviors>

    </behaviors>


    <services>

      <service name="EventInventory.API.Events" behaviorConfiguration="defaultBehavior">
          <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
          <!--<endpoint address="soap" binding="basicHttpBinding" bindingConfiguration="soapBinding" contract="OurCompany.API.IOurService" />-->
          <!-- <endpoint address="json" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="jsonBehavior" contract="OurCompany.API.IOurService" />-->
          <!--<endpoint address="xml" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="poxBehavior" contract="OurCompany.API.IOurService" />-->
          <endpoint binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="jsonBehavior" contract="OurCompany.API.IOurService" />
      </service>

    </services>

  </system.serviceModel>


  <system.webServer>

    <modules runAllManagedModulesForAllRequests="true"/>
    <directoryBrowse enabled="true"/>

  </system.webServer>

</configuration>

Visual Studio 看项目

(右键单击图像并选择在新选项卡中查看,您将能够清楚地看到 100% 大小的 jpeg) 在此处输入图像描述

4

3 回答 3

1

我通常确保解决方案在调试模式下运行(而不是发布),并且启动文件是servicename.svc文件。查看Tips for Launching WCF Test Client有关您的问题的更多提示。

您能否分享您的合同定义,因为此处可能存在与不受支持的合同有关的问题...如果您查看this link,您将看到包含以下列表的帖子。

以下是 WCF 测试客户端不支持的功能列表:

  • 类型:Stream、Message、XmlElement、XmlAttribute、XmlNode,实现 IXmlSerializable 接口的类型,包括相关的 XmlSchemaProviderAttribute 属性,以及 XDocument 和 XElement 类型,ADO.NET DataTable 类型和 DataSet 类型(以及其类型派生类)。
  • 双工合同。
  • 交易。
  • 安全性:CardSpace、证书和用户名/密码。
  • Bindings:WSFederationbinding,任何Context绑定和Https绑定,WebHttpbinding(Json响应消息支持)。
于 2013-10-21T15:56:39.793 回答
0

发现我什至没有启用我的肥皂端点。呃。您需要一个绑定类型为 basicHttpBinding 的端点

于 2013-10-21T21:14:44.067 回答
0

尝试突出显示(单击)解决方案中的 .svc 文件,然后按 F5。这将启动 WCF 测试客户端。那是你要找的吗?

于 2013-10-21T18:29:52.777 回答