У меня есть Windows Azure WorkerRole, в которой размещается служба WCF.Эта услуга используется приложением Silverlight.Локально это работает нормально, однако, когда я пытаюсь развернуть его, конечную точку необходимо настроить в конфигурации роли (см. Изображение ниже).
Когда я удаляю этоконечная точка "WCFEndpoint", все работает локально.Тем не менее, когда оно есть, возникает следующее исключение:
System.ServiceModel.AddressAlreadyInUseException: HTTP konnte die URL "http://+:9196/GreenwayService/" nicht registrieren, weil der TCP-Port 9196 von einer andderenAnwendung verwendet wird.
, что на английском языке означает, что HTTP не может зарегистрировать URL "...", потому что TCP-ПОРТ 9196 используется другим приложением.
Насколько яПонимаете, конечная точка должна быть определена, как на картинке, чтобы быть доступной внутри облака.
Вот мой app.config:
<?xml version="1.0"?>
<configuration>
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
<filter type=""/>
</add>
</listeners>
</trace>
</system.diagnostics>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><system.serviceModel>
<services>
<service name="Greenway.AzureWorkerRole.ServiceHosting.CrossDomainService">
<endpoint address="" behaviorConfiguration="HttpEnableBehavior"
binding="webHttpBinding" contract="Greenway.AzureWorkerRole.ServiceHosting.ICrossDomainService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:9196/" />
</baseAddresses>
</host>
</service>
<service behaviorConfiguration="GreenwayServiceBehavior" name="Greenway.AzureWorkerRole.ServiceHosting.GreenwayService">
<endpoint address="" binding="basicHttpBinding" contract="Greenway.AzureWorkerRole.ServiceHosting.IGreenwayService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:9196/GreenwayService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="HttpEnableBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="GreenwayServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
И это стартовый фрагмент кодаУслуги:
ServiceHost greenwayServiceHost = new ServiceHost(typeof(GreenwayService));
ServiceHost crossDomainServiceHost = new ServiceHost(typeof(CrossDomainService));
greenwayServiceHost.Open();
crossDomainServiceHost.Open();
Что мне нужно изменить в этих трех местах для размещения служб в облаке?