Я настроил традиционные службы WCF с использованием конечных точек SOAP. В моем проекте клиента я добавил Service Reference и т. Д. Они работают так, как ожидалось.Услуги WCF с конечными точками JSON, JSONP и SOAP
Я создал службу WCF с поддержкой JSONP, внесли изменения в файл .svc, веб-конфигурацию и т. Д. Я создал тестовую клиентскую страницу для тестирования. Я успешно позвонил в Службу JSONP.
Однако изменения, внесенные в веб-конфигурацию, нарушили сервисную ссылку для служб SOAP. Я бы хотел использовать оба типа конечных точек. Я не уверен, как настроить службы и веб-конфигурацию.
Если HTTP GET только, может все операции (независимо от того, если она предназначена для SOAP или JSONP) быть украшены: [WebGet(ResponseFormat = WebMessageFormat.Json)]
Тогда мой класс службы необходимо: [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
Когда я теперь попытаться обновить свой Сервис Ссылка в моем проекте клиента Я получаю
Экземпляр привязки уже был связан с прослушиванием URI 'http: // flixsit: 1000/FlixsitWebServices.svc'. Если две конечные точки хотят использовать один и тот же ListenUri, они также должны использовать один и тот же экземпляр объекта привязки. Две конфликтующие конечные точки были либо указаны в вызовах AddServiceEndpoint(), либо в файле конфигурации, либо в сочетании с AddServiceEndpoint() и конфигурацией.
Добавление конфигурации SOAP в мой webconfig также прерывает конечную точку JSONP. Вызов JSONP на стороне клиента не требует ссылки на службу клиента (или генерации прокси), но SOAP делает, правильно?
My Service WebConfig:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="DefaultBehaviors">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
<basicHttpBinding>
<binding name="BasicHttpEndpointBinding" />
</basicHttpBinding>
</bindings>
<services>
<service name="Flixsit.Services.FlixsitWebServices" behaviorConfiguration="DefaultBehaviors">
<endpoint name="JSONPEndPoint" address=""
binding="webHttpBinding"
bindingConfiguration="webHttpBindingWithJsonP"
contract="Flixsit.Services.IFlixsitWebServices"
behaviorConfiguration="webHttpBehavior" />
<endpoint name="HttpEndPoint" address=""
binding="basicHttpBinding"
contract="Flixsit.Services.IFlixsitWebServices" />
<host>
<baseAddresses>
<add baseAddress="http://Flixsit:1000/FlixsitWebServices.svc" />
</baseAddresses>
</host>
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Измените свой вопрос, чтобы была видна вся конфигурация. –