Я боролся с этим всю ночь, так что вот так:
У меня есть служба WCF Azure Service Bus, которая называется Send.Я хочу использовать сервер Windows 2008 R2 (стандартный) для размещения его в IIS с помощью функции автозапуска Windows Server AppFabric.
Я установил Windows Server AppFabric, казалось, все прошло гладко.Однако в пользовательском интерфейсе отсутствует опция «Автозапуск», которую вы обычно получаете, щелкнув правой кнопкой мыши узел «Сайт» в IIS. Он должен выглядеть следующим образом:
http://developers.de/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/damir_5F00_dobric/image_5F00_40F1B83A.png
Однако вместо этого я использовал команды powershell, и они, похоже, работали.Опция выборочного автоматического запуска службы действительно включена.Итак, я решил, что это должно работать.Но, он не запускается автоматически, я также не получаю никаких ошибок в журналах событий.Ниже моя веб-конфигурация:
<!-- Service Bus Service -->
<service name="TestWeb.Send" behaviorConfiguration="serviceBusBehavior">
<endpoint address="sb://mynamespace.servicebus.windows.net/Send/" contract="TestWeb.ISend" binding="netTcpRelayBinding" behaviorConfiguration="SharedSecretCredentials" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBusBehavior">
<serviceMetadata />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="SharedSecretCredentials">
<transportClientEndpointBehavior credentialType="SharedSecret">
<clientCredentials>
<sharedSecret issuerName="owner" issuerSecret="xxxxxxxxxxxxxxxxxxxxxx=" />
</clientCredentials>
</transportClientEndpointBehavior>
</behavior>
</endpointBehaviors>
</behaviors>
Мой сервисный контракт довольно прост:
[ServiceContract]
public interface ISend
{
[OperationContract]
void SendMail(String Subject, String To, String Text, String HTML);
}
Я также добавил ServiceBus_schema.xmlв правильную папку в Inetserv, следуя инструкциям отсюда http://msdn.microsoft.com/en-us/gg282466
Если я на самом деле захожу на службу в браузере, она нормально загружается, и я вижу, что служебная шина регистрирует конечную точку.Но это должно быть сделано без того, чтобы я что-то делал на этом этапе.
У кого-нибудь есть идеи?