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