Я пытаюсь разместить службу 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>
Любые идеи?
[Это сообщение кажется, тот же вопрос ] (http://forums.silverlight.net/t/21944.aspx), хотя я не знаю, использует ли ['baseAddressPrefixFilters'] (http://msdn.microsoft.com/en-us/library/bb924481 .aspx) разрешит это. – SliverNinja