开发者

Azure Service Bus webHttpRelayBinding using WCF REST Template causes unnecessary aspNetCompatibilityEnabled error

I am using Azure Service Bus webHttpRelayBinding using WCF REST Template but it causes unnecessary aspNetCompatibilityEnabled error even though my service-class is correctly decorated:

 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
    [ServiceContract( Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]    
    public class InsightDataService //: Insight.WebAPI.WCFRestImplementation.IInsightDataService
    {...

My Web.Config:-

 <system.serviceModel>
    <services>
      <service name="compname.WebAPI.WCFRestImplementation.InsightDataService" behaviorConfiguration="InsightDataServiceBehavior">
        <endpoint address="https://namespacename.servicebus.windows.net/InsightDataService"
                  binding="webHttpRelayBinding"
                  contract="compname.WebAPI.WCFRestImplementation.InsightDataService"
                  behaviorConfiguration="sharedSecret"                  
                   name="default"
                  >
        </endpoint>
        <host>
          <baseAddresses>
            <add baseAddress="http://namespacename.servicebus.windows.net/InsightDataService"/>
          </baseAddresses>
        </host>
      </service>
    </services>
    <bindings>
      <webHttpRelayBinding>
        <binding name="webHttpRelayBinding"
                  maxBufferSize="2147483647"
                    maxReceivedMessageSize="2147483647"
                  receiveTimeout="00:30:00"
                  sendTimeout="00:30:00"
                  openTimeout="00:30:00"
                  closeTimeout="00:30:00">
          <security mode="None"></security>
        </binding>
      </webHttpRelayBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="InsightDataServiceBehavior">
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <serviceMetadata httpGetEnabled="True" />

          <serviceThrottling
              maxConcurrentCalls="20"
              maxConcurrentInstances="2147483647"
              maxConcurrentSessions="20"/>
        </behavior>
      </serviceBehaviors>

      <endpointBehaviors>
        <behavior name="sharedSecret">

          <transportClientEndpointBehavior credentialType="SharedSecret">
            <clientCredentials>
              <sharedSecret issuerName="owner"
               issuerSecret="****************securitykey**********" />                            
            </clientCredentials>
          </transportClientEndpointBehavior>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <standardEndpoints>
      <webHttpEndpoint>
        <!-- 
            Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
            via the attributes on the <standardEndpoint> element below
        -->

        <standardEndpoint name="default" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
      </webHttpEndpoint>
    </standardEndpoints>
  </system.serviceModel>

Exception is:-

[InvalidOperationException: The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET c开发者_运维技巧ompatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityRequirements attribute to the service type with RequirementsMode setting as 'Allowed' or 'Required'.]
   System.ServiceModel.Activation.HostedAspNetEnvironment.ValidateCompatibilityRequirements(AspNetCompatibilityRequirementsMode compatibilityMode) +119682
   System.ServiceModel.Activation.AspNetCompatibilityRequirementsAttribute.System.ServiceModel.Description.IServiceBehavior.Validate(ServiceDescription description, ServiceHostBase serviceHostBase) +31
   System.ServiceModel.Description.DispatcherBuilder.ValidateDescription(ServiceDescription description, ServiceHostBase serviceHost) +190
   System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost) +109
   System.ServiceModel.ServiceHostBase.InitializeRuntime() +60
   System.ServiceModel.ServiceHostBase.OnBeginOpen() +27
   System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +50
   System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +318
   Microsoft.ServiceBus.RelayedSocketListener.Open(TimeSpan timeout) +56
   Microsoft.ServiceBus.Channels.BufferedConnectionListener.Open(TimeSpan timeout) +55
   Microsoft.ServiceBus.Channels.ConnectionAcceptor.Open(TimeSpan timeout) +55
   Microsoft.ServiceBus.Channels.ConnectionDemuxer.StartDemuxing(TimeSpan timeout, OnViaDelegate viaDelegate) +74
   Microsoft.ServiceBus.Channels.ConnectionDemuxer.Open(TimeSpan timeout) +46
   Microsoft.ServiceBus.SocketConnectionTransportManager.OnOpen(TimeSpan timeout) +639
   Microsoft.ServiceBus.Channels.TransportManager.Open(TimeSpan timeout, TransportChannelListener channelListener) +687
   Microsoft.ServiceBus.Channels.TransportManagerContainer.Open(TimeSpan timeout, SelectTransportManagersCallback selectTransportManagerCallback) +286
   Microsoft.ServiceBus.Channels.TransportChannelListener.OnOpen(TimeSpan timeout) +106
   Microsoft.ServiceBus.Channels.ConnectionOrientedTransportChannelListener.OnOpen(TimeSpan timeout) +92
   Microsoft.ServiceBus.SocketConnectionChannelListener`2.OnOpen(TimeSpan timeout) +106
   Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout) +658
   Microsoft.ServiceBus.Channels.LayeredChannelListener`1.OnOpen(TimeSpan timeout) +89
   Microsoft.ServiceBus.Channels.CommunicationObject.Open(TimeSpan timeout) +658
   System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout) +72

[InvalidOperationException: The ChannelDispatcher at 'sb://namespacename.servicebus.windows.net/InsightDataService' with contract(s) '"InsightDataService"' is unable to open its IChannelListener.]
   System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout) +118
   System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +318
   System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +111
   System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +318
   System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +206
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +651

[ServiceActivationException: The service '/InsightDataService' cannot be activated due to an exception during compilation.  The exception message is: The ChannelDispatcher at 'sb://namespacename.servicebus.windows.net/InsightDataService' with contract(s) '"InsightDataService"' is unable to open its IChannelListener..]
   System.Runtime.AsyncResult.End(IAsyncResult result) +688590
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +190
   System.ServiceModel.Activation.AspNetRouteServiceHttpHandler.EndProcessRequest(IAsyncResult result) +6
   System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +96
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜