2012-05-31 5 views
2

Я пытаюсь разместить службу REST, которая может быть передана с Azure Service Bus Я видел this blog, который выглядит так, как будто это ответит на мой вопрос, но, к сожалению, я получаю тот же результат.Azure Service Bus Хостинг REST Service

Это исключение, которое я получаю при попытке воспользоваться службой в браузере.

Услуга не может быть активирована, поскольку она не поддерживает совместимость с ASP.NET. Совместимость ASP.NET для этого приложения. Отключите совместимость ASP.NET в файле web.config или добавьте атрибут AspNetCompatibilityRequirements к типу службы с параметром RequirementsMode как «Разрешено» или «Обязательно».

Если исключить регистрацию Azure Endpoint из ServiceHostFactory, который подключается к Service Bus Azure (через basicHttpRelayBinding), я не получаю эту ошибку, и я могу ударить обслуживание на местном уровне. Это как-то связано с размещением сервисов RESTful (webHttpBinding) и привязок реле Azure Service Bus (basicHttpRelayBinding).

В global.asax добавить услугу хостинга

protected void Application_Start(object sender, EventArgs e) 
{ 
    // Add REST service hosting. 
    RouteTable.Routes.Add(new ServiceRoute("myservice/rest", 
     new CustomWebServiceHostFactory(typeof(IMyService)), 
     typeof(MyServiceProvider))); 
} 

Я украсил мою поставщику услуг следующим образом:

[ServiceBehavior(IncludeExceptionDetailInFaults = true)] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class MyServiceProvider : IMyService 
{ 
    ... 
} 

web.config, для моего интерфейса службы работает в IIS имеет следующие значения:

<configSections> 
    <sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="standardEndpoints" type="System.ServiceModel.Configuration.StandardEndpointsSection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
    </sectionGroup>   
</configSections> 

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
    <standardEndpoints> 
     <webHttpEndpoint> 
      <standardEndpoint helpEnabled="true" automaticFormatSelectionEnabled="true"> 
      <security mode="None"/> 
      </standardEndpoint> 
     </webHttpEndpoint> 
    </standardEndpoints> 
... 
</system.serviceModel> 

Любые идеи?

+0

[Это сообщение кажется, тот же вопрос ] (http://forums.silverlight.net/t/21944.aspx), хотя я не знаю, использует ли ['baseAddressPrefixFilters'] (http://msdn.microsoft.com/en-us/library/bb924481 .aspx) разрешит это. – SliverNinja

ответ

1

Могу ли я предложить вам попробовать этот мой блог, который показывает ту же самую проблему, наряду с первопричины и разрешения, попробуйте применить предложение и дайте нам знать:

http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/17/wcf-rest-http-application-connecting-azure-service-bus-using-webhttprelaybinding-causes-aspnetcompatibilityenabled-error.aspx