Я пытаюсь разместить службу WCF в SharePoint 2010 с конечной точкой AppFabric. Я использую BasicHttpRelayBinding. Когда я размещаю службу со стандартной конечной точкой, используя basicHttpBinding (не конечную точку служебной шины), служба работает нормально. Однако, как только я добавляю конечную точку, используя basicHttpRelayBinding, я получаю следующую ошибку в журнале событий, и служба не регистрируется на служебной шине.
WebHost не смог обработать запрос.
Информация об отправителе: System.ServiceModel.Activation.HostedHttpRequestAsyncResult / 58154627
Исключение: System.ServiceModel.ServiceActivationException: служба '/_vti_bin/FirstServiceFarmSolution/ListAccessService.svc' не может быть активирована из-за исключения во время компиляции. Сообщение об исключении: ChannelDispatcher в 'sb: //cliffwahl-trial.servicebus.windows.net/ListAccessService' с контрактом (ами) "IListAccessService" "не может открыть свой IChannelListener .. ---> System.InvalidOperationException : ChannelDispatcher в 'sb: //cliffwahl-trial.servicebus.windows.net/ListAccessService' с контрактом (-ами) "IListAccessService" "не может открыть свой IChannelListener. ---> System.InvalidOperationException: службу нельзя активировать, поскольку она не поддерживает совместимость с ASP.NET. Совместимость ASP.NET включена для этого приложения. Отключите режим совместимости ASP.NET в web.config или добавьте атрибут AspNetCompatibilityRequirements к типу службы с параметром RequirementsMode «Разрешено» или «Обязательно».
в System.ServiceModel.Activation.AspNetCompatibilityRequirementsAttribute.System.ServiceModel.Description.IServiceBehavior.Validate (описание ServiceDescription, ServiceHostBase serviceHostBase)
Я пробовал ws2007HttpRelayBinding и netTcpRelayBinding с одинаковым поведением.
Вот соответствующие части кода:
[ServiceContract]
public interface IListAccessService
{
[OperationContract]
List<Lead> GetLeads();
}
[BasicHttpBindingServiceMetadataExchangeEndpoint]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ListAccessService : IListAccessService
Сервисный файл:
<%@ ServiceHost Debug="true"
Language="C#"
CodeBehind="ListAccessService.cs"
Service="FirstServiceFarmSolution.Code.ListAccessService, FirstServiceFarmSolution,Version=1.0.0.0,Culture=neutral,PublicKeyToken=625bdee8db8847ef" %>
Web Config:
<configuration>
<system.serviceModel>
<services>
<clear/>
<service name="FirstServiceFarmSolution.Code.ListAccessService"
behaviorConfiguration="ListAccessServiceBehavior">
<endpoint name="BasicHttpEndPoint"
address=""
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBindingConfig"
contract="FirstServiceFarmSolution.Code.IListAccessService">
<identity>
<dns value="sp2010" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<endpoint name="RelayEndPoint"
address="https://cliffwahl-trial.servicebus.windows.net/ListAccessService"
binding="basicHttpRelayBinding"
bindingConfiguration="HttpRelayBindingConfig"
behaviorConfiguration="sharedSecretClientCredentials"
contract="FirstServiceFarmSolution.Code.IListAccessService" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBindingConfig" />
</basicHttpBinding>
<basicHttpRelayBinding>
<binding name="HttpRelayBindingConfig">
<security relayClientAuthenticationType="None" mode="Transport"/>
</binding>
</basicHttpRelayBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ListAccessServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="false" httpsHelpPageEnabled="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="sharedSecretClientCredentials">
<transportClientEndpointBehavior credentialType="SharedSecret">
<clientCredentials>
<sharedSecret issuerName="<my issuer name>" issuerSecret="<my issuer secret>"/>
</clientCredentials>
</transportClientEndpointBehavior>
<serviceRegistrySettings discoveryMode="Public" />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Кто-нибудь видит проблему с настройкой или кто-то может указать мне на конкретный пример SharePoint для размещения службы WCF с конечной точкой служебной шины?
Спасибо,
Cliff