Web services WCF webservice在“之后失败”;“提取接口”;

Web services WCF webservice在“之后失败”;“提取接口”;,web-services,wcf,interface,Web Services,Wcf,Interface,我不熟悉Web服务,有一个简单的问题 我用Visual Studio 2017编写了一个“Hello World”服务: ServiceAjax.svc.cs: namespace WebServiceTest { [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)

我不熟悉Web服务,有一个简单的问题

我用Visual Studio 2017编写了一个“Hello World”服务: ServiceAjax.svc.cs:

namespace WebServiceTest
{    
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class ServiceAjax
    {
        [OperationContract]
        [WebGet]
        public string DoWork()
        {
            return "Hallo World";
        }
    }
}
namespace WebServiceTest
{
    [ServiceContract]
    public interface IServiceAjax
    {
        [OperationContract]
        [WebGet]
        string DoWork();

    }  

      [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class ServiceAjax: IServiceAjax
    {
        public string DoWork()
        {
            return "Hallo World";
        }
    }
}
ServiceAjax.svc的内容如下:

<%@ ServiceHost Language="C#" Debug="true" Service="WebServiceTest.ServiceAjax" CodeBehind="ServiceAjax.svc.cs" %>   
运行此命令时,我收到一个错误: 这是德语,因此我的翻译可能与英文信息不同: “无法从中加载元数据…” 我有点不明白他告诉我: 在ServiceAjax实现的契约列表中找不到WebServiceTest.ServiceAjax WO

所以,它一定是一个垃圾场,因为我无法解释为什么提取接口会破坏服务,我肯定错过了一些简单的东西

但是我在网上找不到与“简单WCF Web HTTP服务”示例的区别

想法

更新:我将此添加到现有的ASPX项目中,而不是“干净”的wcf项目……

我自己找到了答案(在获得风滚草徽章之后…)

网络配置中缺少一行

      <endpoint address="mex" 
                binding="mexHttpBinding" 
                name="mex" 
                contract="IMetadataExchange" /> 
下面是我添加到web.config中的内容(allready包括删除了4行的行)

<system.serviceModel>   
  <behaviors>
    <serviceBehaviors>
      <behavior name="myServiceTypeBehaviors" >
        <serviceMetadata httpGetEnabled="true" />
      </behavior>
    </serviceBehaviors>
    <endpointBehaviors>
      <behavior name="myDataAspNetAjaxBehavior">
        <enableWebScript />
      </behavior>
    </endpointBehaviors>
  </behaviors>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
   multipleSiteBindingsEnabled="true" />
  <services>
    <service behaviorConfiguration="myServiceTypeBehaviors"
      name="WebServiceTest.ServiceAjax">
       <endpoint address="" 
                behaviorConfiguration="myDataAspNetAjaxBehavior"
                binding="webHttpBinding" 
                name="ZESData" 
                contract="WebServiceTest.IZESData" />
      <endpoint address="mex" 
                binding="mexHttpBinding" 
                name="mex" 
                contract="IMetadataExchange" /> 
    </service>
  </services>
</system.serviceModel>

[ServiceContract(Namespace = "AJAXService")]
<system.serviceModel>   
  <behaviors>
    <serviceBehaviors>
      <behavior name="myServiceTypeBehaviors" >
        <serviceMetadata httpGetEnabled="true" />
      </behavior>
    </serviceBehaviors>
    <endpointBehaviors>
      <behavior name="myDataAspNetAjaxBehavior">
        <enableWebScript />
      </behavior>
    </endpointBehaviors>
  </behaviors>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
   multipleSiteBindingsEnabled="true" />
  <services>
    <service behaviorConfiguration="myServiceTypeBehaviors"
      name="WebServiceTest.ServiceAjax">
       <endpoint address="" 
                behaviorConfiguration="myDataAspNetAjaxBehavior"
                binding="webHttpBinding" 
                name="ZESData" 
                contract="WebServiceTest.IZESData" />
      <endpoint address="mex" 
                binding="mexHttpBinding" 
                name="mex" 
                contract="IMetadataExchange" /> 
    </service>
  </services>
</system.serviceModel>