я получаю следующую ошибку при попытке запустить мой сервис:
Could not start the Service: System.InvalidOperationException: This service has multiple endpoints listening at 'https://b2e.my.loc:8093/' which share the same initiating action 'http://localhost:8080/kestrel/AirService'. As a result, messages with this action would be dropped since the dispatcher would not be able to determine the correct endpoint for handling the message. Please consider hosting these Endpoints at separate ListenUris.
Мы получили приложение, которое использует сторонний WSDL для поиска и бронирования рейса.
иу нас есть другое приложение winform, которое берет сгенерированный reference.cs из вышеприведенного wsdl
. Идея состоит в том, чтобы создать «симулятор», поэтому вместо вызова реального WSDL мы фактически вызываем сам симулятор и генерируем данные, которые мынужно (что-то вроде насмешки)
рассмотрим следующий файл reference.cs, сгенерированный WSDL:
namespace FlightWCF
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace = "", ConfigurationName = "FlightWCF.ISearch")]
public interface ISearch
{
[System.ServiceModel.OperationContractAttribute(Action = "http://localhost:8080/kestrel/AirService", ReplyAction = "*")]
FlightWCF.serviceResponse1 service(FlightWCF.serviceRequest1 request);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace = "", ConfigurationName = "FlightWCF.IReserve")]
public interface IReserve
{
[System.ServiceModel.OperationContractAttribute(Action = "http://localhost:8080/kestrel/AirService", ReplyAction = "*")]
FlightWCF.serviceResponse6 service(FlightWCF.serviceRequest6 request);
}
}
это часть моего app.config
<service name="MyFlightClass.ServiceFlight">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicSecureHttpBindingConfiguration" contract="FlightWCF.ISearch" />
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicSecureHttpBindingConfiguration" contract="FlightWCF.IReserve" />
</service>
и это служба, использующая приведенный выше код:
namespace MyFlightClass
{
class ServiceFlight : ISearch, IReserve
{
public FlightWCF.serviceResponse1 service(FlightWCF.serviceRequest1 request)
{
//DO SOMETHING
}
public FlightWCF.serviceResponse6 service(FlightWCF.serviceRequest6 request)
{
//DO SOMETHING
}
}
}
проблема в том, что обе службы используют одно и то же «действие».
, если я изменяю «действие» одного, еслиих становится недоступным.
и я не могу найти никаких данных о том, как настроить службу с 2 конечными точками, которые имеют разные контракты, но с тем же действием.
предложение "Пожалуйста,Мне неясно, размещать ли эти конечные точки в отдельном ListenUris.