I created WCF service application there are no errors until I run WcfTestClient
. It requires IMetadataExchange
to be configured.
How to configure IMetadataExchange
or avoid of its usage?
Error:
--------------------------- Microsoft WCF Test Client
--------------------------- The contract 'IMetadataExchange' in client configuration does not match the name in service contract, or there is no valid method in this contract. To recover, please manually correct client configuration.Or restore to default configuration.
Or check "Always regenerate config when launching services" in the Tools -> Options menu, then refresh the service.
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>
PermitTypes
using System;
using System.Runtime.Serialization;
namespace WcfCrmService
{
namespace TestService
{
[DataContract]
public class PermitTypes
{
[DataMember]
public Guid PermitTypesId;
[DataMember]
public String PermitName;
[DataMember]
public String PermitForm;
[DataMember]
public String PermitView;
}
}
}
IPermitTypesService
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);
}
}
PermitTypesService
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
}
}
}
Service XML
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<a:Action s:mustUnderstand="1" u:Id="_2">http://tempuri.org/IPermitTypesService/GetPermitTypesResponse</a:Action>
<a:RelatesTo u:Id="_3">urn:uuid:6f8c2229-da22-4ea1-b0df-e760bf51af6d</a:RelatesTo>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="uuid-090f17e6-f7a7-4e9c-8881-d19571706129-17">
<u:Created>2011-07-15T10:35:14.132Z</u:Created>
<u:Expires>2011-07-15T10:40:14.132Z</u:Expires>
</u:Timestamp>
<c:DerivedKeyToken u:Id="uuid-090f17e6-f7a7-4e9c-8881-d19571706129-7" xmlns:c="http://schemas.xmlsoap.org/ws/2005/02/sc">
<o:SecurityTokenReference>
<o:Reference URI="urn:uuid:1716f576-883e-475c-9b56-4accac413b66" ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct" />
</o:SecurityTokenReference>
<c:Offset>0</c:Offset>
<c:Length>24</c:Length>
<c:Nonce>GAplsFZPK8LsfnWQDwrTkQ==</c:Nonce>
</c:DerivedKeyToken>
<c:DerivedKeyToken u:Id="uuid-090f17e6-f7a7-4e9c-8881-d19571706129-8" xmlns:c="http://schemas.xmlsoap.org/ws/2005/02/sc">
<o:SecurityTokenReference>
<o:Reference URI="urn:uuid:1716f576-883e-475c-9b56-4accac413b66" ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/sct" />
</o:SecurityTokenReference>
<c:Nonce>xwL0WRp3kTTqjzEwwFnA3A==</c:Nonce>
</c:DerivedKeyToken>
<e:ReferenceList xmlns:e="http://www.w3.org/2001/04/xmlenc#">
<e:DataReference URI="#_1" />
<e:DataReference URI="#_4" />
</e:ReferenceList>
<e:EncryptedData Id="_4" Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:e="http://www.w3.org/2001/04/xmlenc#">
<e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<o:SecurityTokenReference>
<o:Reference ValueType="http://schemas.xmlsoap.org/ws/2005/02/sc/dk" URI="#uuid-090f17e6-f7a7-4e9c-8881-d19571706129-8" />
</o:SecurityTokenReference>
</KeyInfo>
<e:CipherData>
<e:CipherValue>CIPHERDATAK</e:CipherValue>
</e:CipherData>
</e:EncryptedData>
</o:Security>
</s:Header>
<s:Body u:Id="_0">
<GetPermitTypesResponse xmlns="http://tempuri.org/">
<GetPermitTypesResult xmlns:a="http://schemas.datacontract.org/2004/07/WcfCrmService.TestService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:PermitTypes>
<a:PermitForm>TESTPERMIT_FORM</a:PermitForm>
<a:PermitName>TESTPERMIT_NAME</a:PermitName>
<a:PermitTypesId>d81a9ccd-bbae-e011-9b4f-bcaec545c264</a:PermitTypesId>
<a:PermitView>TESTPERMIT_VIEW</a:PermitView>
</a:PermitTypes>
<a:PermitTypes>
<a:PermitForm>BcisCertificate</a:PermitForm>
<a:PermitName>Сертификат соответствия БЦИС</a:PermitName>
<a:PermitTypesId>167ac5ea-51a9-e011-9c96-bcaec545c264</a:PermitTypesId>
<a:PermitView>BcisCertificateView</a:PermitView>
</a:PermitTypes>
<a:PermitTypes>
<a:PermitForm>DLOReferenceForm</a:PermitForm>
<a:PermitName>Справка ДЛО</a:PermitName>
<a:PermitTypesId>16579d03-52a9-e011-9c96-bcaec545c264</a:PermitTypesId>
<a:PermitView>DLOReferenceView</a:PermitView>
</a:PermitTypes>
</GetPermitTypesResult>
</GetPermitTypesResponse>
</s:Body>
</s:Envelope>
Sultan