Я пытаюсь отправлять и получать сообщения с локальной машины рабочей группы (Windows 7), называть ее «клиентом», на Service Bus 1.0, настроенной на сервере рабочей группы (размещенный на AWS EC2). После многих испытаний и исследований я не могу отправлять сообщения с клиентской машины на сервер. Я следил за рядом статей, которые показывают, что это возможно, но я не могу решить проблему проверки подлинности, которую я вижу.Ошибка аутентификации отправки сообщений в Windows Service Bus 1.0 на AWS
Connecting to Windows Server Service Bus on AWS
Microsoft Service Bus on a Windows Workgroup
Замечу, системные требования Microsoft, как представляется, указывают, что он «не поддерживается» и «не представляется возможным». Мой вопрос в том, можно ли это сделать, и у кого-то был успех? Любая помощь будет принята с благодарностью.
msdn.microsoft.com/en-us/library/windowsazure/jj193011(v=azure.10).aspx
Мои попытки включают использование либо WindowsTokenProvider и OAuthTokenProvider. Я получаю тот же результат:
System.UnauthorizedAccessException: поставщик токенов не смог предоставить маркер безопасности при доступе к « $ STS/Windows /». Поставщик токена вернул сообщение: ''. ---> System.IdentityModel.Tokens.SecurityTokenException: поставщик токенов не смог предоставить маркер безопасности при доступе к 'https://xx.xx.xx.xx:9355/ServiceBusDefaultNamespace/ $ STS/Windows /'. Поставщик токена вернул сообщение: ''. ---> System.Net.WebException: Удаленный сервер ответил на ошибку: (401) Неавторизованный.
Пространство имен служебной шины настроено с помощью AddressingScheme «Путь» для установки рабочей группы. И строка подключения на стороне клиента включает IP для доступа к серверу, и я установил RemoteCertificateValidationCallback перед созданием очередей.
Endpoint=sb://xx.xx.xx.xx/ServiceBusDefaultNamespace;StsEndpoint=https://xx.xx.xx.xx:9355/ServiceBusDefaultNamespace;RuntimePort=9354;ManagementPort=9355;WindowsUsername=SBUser;WindowsDomain=[NotUsed];WindowsPassword=[Password]
код для подключения к удаленной очереди и отправить сообщение выглядит следующим образом:
счетServiceBusConnectionStringBuilder connBuilder = new ServiceBusConnectionStringBuilder(ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"]); // Gets the connection string above
TokenProvider tokenProvider = WindowsTokenProvider.CreateWindowsTokenProvider(connBuilder.StsEndpoints, new NetworkCredential(connBuilder.WindowsCredentialUsername, connBuilder.WindowsCredentialPassword));
MessagingFactorySettings messagingFactorySettings = new MessagingFactorySettings();
messagingFactorySettings.TokenProvider = tokenProvider;
MessagingFactory messagingFactory = MessagingFactory.Create(connBuilder.GetAbsoluteRuntimeEndpoints(), messagingFactorySettings);
requestQueue = messagingFactory.CreateQueueClient("RequestQueue");
...
requestQueue.Send(sendMessage); // Fails here
Сервер SBUser с паролем, и я оставил домен/хост указанный пробел в маркере поставщик. Я отмечаю, что средство просмотра событий на сервере показывает, что попытка аутентификации - это учетная запись пользователя клиента, а не та, которая принадлежит провайдеру токенов. Почему это? Мне явно не хватает чего-то для аутентификации на сервере.
An account failed to log on.
Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0
Logon Type: 3
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: [ClientLogin]
Account Domain: [ClientMahcine]
Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xc000006d
Sub Status: 0xc0000064
Цените любую помощь. Благодарю.
Я повторно с OAuthTokenProvider и проверить правильность учетных данных передается (SBUser плюс пароль). Это изначально дает мне ошибку: сертификат X.509 CN = AMAZONA-PQxxxxx не находится в магазине доверенных людей. Я могу решить, экспортируя сертификаты и импортируя их на клиент. Теперь он дает эту ошибку: MessagingCommunicationException: проверка подлинности не удалась для исходящего сообщения. Ожидаемый идентификатор DNS удаленной конечной точки был «54 .214.245.186», но удаленная конечная точка предоставила DNS-запрос «AMAZONA-PQxxxxx». – Lewis
Я использую ту же строку соединения в соответствии с начальным сообщением. В журнале событий Service Bus ничего нет на сервере. Правильно ли это место? Средство просмотра событий-> Журналы приложений и служб-> Microsoft-> ServiceBus-> CASSink и Client. – Lewis