2015-09-10 3 views
2

Я работаю над проектом, в котором служба ASP.NET WCF размещена на месте, и ее необходимо открыть для использования другими приложениями, размещенными в Microsoft Azure.Может ли Azure Service Bus Relay использоваться для отображения службы WCF с поддержкой ASP.NET?

Azure Service Bus Relay - это необходимый метод для предоставления службы ASP.NET WCF для приложений, размещенных в Azure. Тем не менее, во всей документации Azure показаны примеры настройки Service Bus Relay с сервисом WCF, размещаемым в приложении консоли.

Возможно ли разместить службу WCF в приложении ASP.NET в IIS и открыть ее через Azure Service Bus Relay?

ответ

0

Sidney Andrews размещена пример на следующей ссылке о том, как настроить файл ASP.NET web.config для настройки службы WCF с помощью конечной точки реле шины обслуживания.

https://gist.github.com/SidneyAndrewsOpsgility/bc1096ac96401f95b3d7

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5.2"/> 
    <httpRuntime targetFramework="4.5.2"/> 
    </system.web> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
     <endpointBehaviors> 
     <behavior name="ServiceBusBehavior"> 
      <transportClientEndpointBehavior> 
      <tokenProvider> 
       <sharedAccessSignature keyName="RootManageSharedAccessKey" key="[replace with your key]" /> 
      </tokenProvider> 
      </transportClientEndpointBehavior> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/> 
    <services> 
     <service name="WcfTest.Services.ClockService"> 
     <endpoint address="" binding="basicHttpBinding" bindingConfiguration="DefaultBinding" contract="WcfTest.Services.IClockService"/> 
     <endpoint address="sb://[replace with your namespace].servicebus.windows.net/clock" binding="netTcpRelayBinding" behaviorConfiguration="ServiceBusBehavior" contract="WcfTest.Services.IClockService"/> 
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="DefaultBinding" /> 
     </basicHttpBinding> 
     <netTcpRelayBinding> 
     <binding name="ServiceBusBinding" /> 
     </netTcpRelayBinding> 
    </bindings> 
    <extensions> 
     <!-- In this extension section we are introducing all known service bus extensions. User can remove the ones they don't need. --> 
     <behaviorExtensions> 
     <add name="connectionStatusBehavior" 
      type="Microsoft.ServiceBus.Configuration.ConnectionStatusElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="transportClientEndpointBehavior" 
      type="Microsoft.ServiceBus.Configuration.TransportClientEndpointBehaviorElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="serviceRegistrySettings" 
      type="Microsoft.ServiceBus.Configuration.ServiceRegistrySettingsElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </behaviorExtensions> 
     <bindingElementExtensions> 
     <add name="netMessagingTransport" 
      type="Microsoft.ServiceBus.Messaging.Configuration.NetMessagingTransportExtensionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="tcpRelayTransport" 
      type="Microsoft.ServiceBus.Configuration.TcpRelayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="httpRelayTransport" 
      type="Microsoft.ServiceBus.Configuration.HttpRelayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="httpsRelayTransport" 
      type="Microsoft.ServiceBus.Configuration.HttpsRelayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="onewayRelayTransport" 
      type="Microsoft.ServiceBus.Configuration.RelayedOnewayTransportElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </bindingElementExtensions> 
     <bindingExtensions> 
     <add name="basicHttpRelayBinding" 
      type="Microsoft.ServiceBus.Configuration.BasicHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="webHttpRelayBinding" 
      type="Microsoft.ServiceBus.Configuration.WebHttpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="ws2007HttpRelayBinding" 
      type="Microsoft.ServiceBus.Configuration.WS2007HttpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="netTcpRelayBinding" 
      type="Microsoft.ServiceBus.Configuration.NetTcpRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="netOnewayRelayBinding" 
      type="Microsoft.ServiceBus.Configuration.NetOnewayRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="netEventRelayBinding" 
      type="Microsoft.ServiceBus.Configuration.NetEventRelayBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="netMessagingBinding" 
      type="Microsoft.ServiceBus.Messaging.Configuration.NetMessagingBindingCollectionElement, Microsoft.ServiceBus, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </bindingExtensions> 
    </extensions> 
    </system.serviceModel> 
</configuration> 

Благодаря Сидни, это именно то, что мне нужно!

0

Я думаю, что вам нужно, чтобы создать Azure Hybrid Connection, который построен для точной вещь, которую вы пытаетесь сделать:

Вот интро:

https://azure.microsoft.com/en-us/documentation/articles/integration-hybrid-connection-overview/

Здесь как установить его:

https://azure.microsoft.com/en-us/documentation/articles/integration-hybrid-connection-create-manage/

+0

Это то, что мы говорили с нашими on-prem-сервисами от Azure –