WcfTestClient:合同';国际货币交易所';错误

WcfTestClient:合同';国际货币交易所';错误,wcf,web-services,wcftestclient,Wcf,Web Services,Wcftestclient,我创建了WCF服务应用程序,在运行WcfTestClient之前没有错误。它需要配置imadataexchange 如何配置imadataexchange或避免其使用 错误: ---------------------------Microsoft WCF测试客户端 ---------------------------客户端配置中的协定“IMetadataExchange”与服务协定中的名称不匹配,或者存在 本合同中没有有效的方法。要恢复,请手动更正 客户端配置 或恢复到默认配置 或者在中选中

我创建了WCF服务应用程序,在运行
WcfTestClient
之前没有错误。它需要配置
imadataexchange

如何配置
imadataexchange
或避免其使用

错误:

---------------------------Microsoft WCF测试客户端
---------------------------客户端配置中的协定“IMetadataExchange”与服务协定中的名称不匹配,或者存在 本合同中没有有效的方法。要恢复,请手动更正 客户端配置

或恢复到默认配置

或者在中选中“启动服务时始终重新生成配置” 工具->选项菜单,然后刷新服务

App.config

<system.serviceModel>
    <services>
      <service name="WcfCrmService.PermitTypesService">
        <endpoint address="" binding="wsHttpBinding" contract="WcfCrmService.IPermitTypesService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="WcfCrmService.IPermitTypesService" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8732/Design_Time_Addresses/WcfCrmService/Mex/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, 
          set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="True"/>
          <!-- To receive exception details in faults for debugging purposes, 
          set the value below to true.  Set to false before deployment 
          to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="False"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
IPerMittypeService

using System.Collections.Generic;
using System.ServiceModel;
using WcfCrmService.TestService;

namespace WcfCrmService
{
    [ServiceContract]
    public interface IPermitTypesService
    {
        [OperationContract]
        void SubmitPermitTypes(PermitTypes permit);

        [OperationContract]
        List<PermitTypes> GetPermitTypes();

        [OperationContract]
        void DeletePermitTypes(string id);
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.ServiceModel;
using System.ServiceModel.Description;
using Microsoft.Crm.Sdk.SWSE;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using WcfCrmService.TestService;
namespace WcfCrmService
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    public class PermitTypesService : IPermitTypesService
    {
        public void SubmitPermitTypes(PermitTypes permit)
        {
            // Create records
        }
        public List<PermitTypes> GetPermitTypes()
        {
            // return Results
        }
        public void DeletePermitTypes(string id)
        {
            // Remove items
        }
    }
}
使用System.Collections.Generic;
使用System.ServiceModel;
使用WcfCrmService.TestService;
命名空间WcfCrmService
{
[服务合同]
公共接口IPermitTypesService
{
[经营合同]
作废提交许可类型(许可类型许可);
[经营合同]
列出GetPermitTypes();
[经营合同]
void DeletePermitTypes(字符串id);
}
}
许可类型服务

using System.Collections.Generic;
using System.ServiceModel;
using WcfCrmService.TestService;

namespace WcfCrmService
{
    [ServiceContract]
    public interface IPermitTypesService
    {
        [OperationContract]
        void SubmitPermitTypes(PermitTypes permit);

        [OperationContract]
        List<PermitTypes> GetPermitTypes();

        [OperationContract]
        void DeletePermitTypes(string id);
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.ServiceModel;
using System.ServiceModel.Description;
using Microsoft.Crm.Sdk.SWSE;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using WcfCrmService.TestService;
namespace WcfCrmService
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    public class PermitTypesService : IPermitTypesService
    {
        public void SubmitPermitTypes(PermitTypes permit)
        {
            // Create records
        }
        public List<PermitTypes> GetPermitTypes()
        {
            // return Results
        }
        public void DeletePermitTypes(string id)
        {
            // Remove items
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
Net系统;
使用System.ServiceModel;
使用System.ServiceModel.Description;
使用Microsoft.Crm.Sdk.SWSE;
使用Microsoft.Xrm.Sdk;
使用Microsoft.Xrm.Sdk.Client;
使用WcfCrmService.TestService;
命名空间WcfCrmService
{
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
公共类PermitTypesService:IPermitTypesService
{
公共无效提交许可类型(许可类型许可)
{
//创造记录
}
公共列表GetPermitTypes()
{
//返回结果
}
public void DeletePermitTypes(字符串id)
{
//删除项目
}
}
}
服务XML

http://tempuri.org/IPermitTypesService/GetPermitTypesResponse
urn:uuid:6f8c2229-da22-4ea1-b0df-e760bf51af6d
2011-07-15T10:35:14.132Z
2011-07-15T10:40:14.132Z
0
24
GAplsFZPK8LsfnWQDwrTkQ==
xwL0WRp3kTTqjzEwwFnA3A==
密码数据
测试许可证表格
测试许可证名称
d81a9ccd-bbae-e011-9b4f-bcaec545c264
测试许可证视图
B证书
Сертификат соответствия БЦИС
167ac5ea-51a9-e011-9c96-bcaec545c264
B证书审查
DLOReferenceForm
Справка ДЛО
16579d03-52a9-e011-9c96-bcaec545c264
DLOReferenceView

苏丹

您的配置中的这一点肯定是错误的:

<endpoint address="mex" binding="mexHttpBinding" contract="WcfCrmService.IPermitTypesService" />
现在可以用了吗??WCF测试客户机将使用MEX端点来了解您的服务-如果您在那里有错误的服务合同,测试客户机肯定不会工作

更新:您对基址的选择也有点奇怪:

<baseAddresses>
   <add baseAddress="http://localhost:8732/Design_Time_Addresses/WcfCrmService/Mex/" />
</baseAddresses>
当到达MEX端点时:

http://localhost:8732/Design_Time_Addresses/WcfCrmService/Mex/mex/
我建议为服务使用更好/更有意义的基址,只需将
mex
添加到mex端点的末尾:

<baseAddresses>
   <add baseAddress="http://localhost:8732/Services/WcfCrmService/" />
</baseAddresses>


您是否尝试重新生成客户端?或者,您执行了哪些步骤,导致了错误消息?我实现了如上所示的分步DataContract、服务契约接口和派生服务接口。我还尝试再次重建解决方案,但没有结果如果您发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(
{}
),以很好地格式化和语法突出显示它!如果您发布错误消息,请使用块引号(```)正确设置错误消息的格式。@苏丹:使用WCF测试客户端时,您连接到哪个URL?目前我正在使用ASP.NET开发server@Sultan:需要检查的两件事:WCF测试客户端是否使用此URL:
http://localhost:8732/Design_Time_Addresses/WcfCrmService/mex/mex
,第二个问题:当连接到将浏览器设置为
ttp://localhost:8732/Design_Time_Addresses/WcfCrmService/mex?wsdl
??@marc_s让我们知道,我在运行默认WCF服务库项目时遇到了错误
http://localhost:8732/Design_Time_Addresses/WcfCrmService/Mex/mex/
<baseAddresses>
   <add baseAddress="http://localhost:8732/Services/WcfCrmService/" />
</baseAddresses>