В моем клиентском приложении я получаю следующую ошибку:
Could not find endpoint element with name 'QueuedService' and contract
'IMyService' in the ServiceModel client configuration section. This might
be because no configuration file was found for your application, or because no
endpoint element matching this name could be found in the client element.
Я использовал svutil.exe для создания клиентского прокси, который я использую.Обычно я вручную прокручиваю свой собственный прокси и замечаю, что сгенерированная версия интерфейса для контракта на обслуживание не была в пространстве имен, которое я изначально указал в контракте на обслуживание:
// Auto-generated proxy
namespace MyServices.Contracts
{
// Request object in correct namespace
[System.Runtime.Serialization.DataContractAttribute(
Name="MyRequest",
Namespace="http://schemas.datacontract.org/2004/07/MyServices.Contracts")]
public class MyRequest
{
// ...
}
}
// Service contract NOT in namespace
[System.ServiceModel.ServiceContractAttribute(
ConfigurationName="IMyService")]
public interface IMyService
{
// ...
}
Мое хост-приложение web.configуказывает конечные точки службы (одна для MSMQ и одна для TCP):
<system.serviceModel>
<service>
<!-- etc... -->
<endpoint name="QueuedService"
address="net.msmq://localhost/private/MyQueue"
binding="netMsmqBinding"
bindingConfiguration="MsmqDefaultBinding_Local"
contract="MyService.Contracts.IMyService" />
<endpoint name="TcpService"
address="net.tcp://localhost/ServiceHost/TheService.svc"
contract="MyServices.Contracts.IMyService"
binding="netTcpBinding"
bindingConfiguration="netTcpWindowsBinding" />
</service>
</system.serviceModel>
Клиентское приложение использует службу следующим образом:
var endpointConfigName = GetEndpointConfigNameFromConfig();
using(var myServiceClient = new MyServiceClient(endpointConfigName))
{
// Create Request object...
// Call service like so:
myServiceClient.SomeServiceMethod(requestObject);
}
И клиентский web.config:
<client>
<endpoint name="QueuedService"
address="net.msmq://localhost/private/MyQueue"
binding="netMsmqBinding"
bindingConfiguration="MsmqDefaultBinding_Local"
contract="MyServices.Contracts.IMyService" />
<endpoint name="TcpService"
address="net.tcp://localhost/ServiceHost/TheService.svc"
contract="MyServices.Contracts.IMyService"
binding="netTcpBinding"
bindingConfiguration="netTcpWindowsBinding" />
</client>
Есть идеи ???