Кто-нибудь успешно использует spring.nets Spring.ServiceModel.ServiceExporter с WCF??
Какой-то фон.....
Я пытаюсь настроить службы wcf с помощью spring.net для использования в веб-приложении.
В моей первой итерации проекта мне удалось настроить объект службы с помощью spring (я дал ему идентификатор requestManagerService), а в файле svc я указал Springs ServiceHostFactory на этот объект. SVC-файл выглядел так:
<%@ ServiceHost Language="C#" Debug="true" Service="requestManagerService" Factory="Spring.ServiceModel.Activation.ServiceHostFactory" %>
Однако я не хочу украшать свой интерфейс/контракт атрибутами [ServiceContract] и [OperationContract]. Чтобы избежать этого, вы можете использовать Springs ServiceExporter.
Итак, я установил следующее в своей веб-конфигурации:
<object id="requestManagerService" type="SupplyAndDemand.Messaging.UI.Web.RequestManagerService, SupplyAndDemand.Messaging.UI.Web"
singleton="false">
</object>
<system.serviceModel>
<services>
<service name="requestManagerService" behaviorConfiguration="DefaultBehavior">
<endpoint address="" binding="basicHttpBinding" contract="SupplyAndDemand.Shared.Interfaces.Services.IRequestManagerService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="DefaultBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<object id="requestManagerServiceHost" type="Spring.ServiceModel.Activation.ServiceHostFactoryObject, Spring.Services">
<property name="TargetName" value="requestManagerServiceExporter" />
</object>
<object id="requestManagerServiceExporter" type="Spring.ServiceModel.ServiceExporter, Spring.Services">
<!-- The target object to export-->
<property name="TargetName" value="requestManagerService"/>
<!-- The namespace associated with the wcf service-->
<property name="Namespace" value="http://supplyanddemandapp/"/>
<property name="TypeAttributes">
<list>
<object type="System.ServiceModel.ServiceBehaviorAttribute, System.ServiceModel">
<property name="ConfigurationName" value="requestManagerService"/>
</object>
</list>
</property>
</object>
Когда я запускаю веб-приложение, я получаю следующую ошибку:
«Не удалось найти базовый адрес, соответствующий схеме http для конечной точки с привязкой BasicHTTPBinding. Зарегистрированные схемы базовых адресов: []». Эта ошибка возникает в System.ServiceModel.ServiceHostBase.MakeAbsoluteUri).
Очевидно, это означает, что мне нужно определить базовый адрес.... но я считаю, что моя проблема заключается в настройке spring, а не WCF, поскольку я использую конфигурацию wcf, которая ранее работала, когда я не использовал экспортер.
Документы Spring подразумевают, что конфигурация проста, и я убежден, что делаю что-то принципиально неправильное - кто-нибудь успешно использовал ServiceExporter с веб-приложением asp.net?