在F5之后,WCF服务主机不会出现

时间:2013-10-21 03:49:34

标签: wcf

我有一个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(我刚刚添加到DID创建wsdl的C#项目,因此我知道它可以工作)之后不会显示任何内容的测试客户端说我点击后添加好的但是在它说它成功添加之后,它在测试客户端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查看项目

(右键单击图像并选择在新标签中查看,您将能够清楚地看到jpeg,大小为100%) enter image description here

3 个答案:

答案 0 :(得分: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,证书和用户名/密码。
  •   
  • 绑定:WSFederationbinding,任何Context绑定和Https绑定,   WebHttpbinding(Json响应消息支持)。
  •   

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

的端点