У меня есть пакет служб SSIS с задачей сценария, которая помещает сообщение в служебную шину Azure.Пакет служб SSIS работает на MS SQL Server 2014, на виртуальной машине Azure с Windows Server 2012. Это прекрасно работает на моей машине для разработки и на тестируемой виртуальной машине Azure, которой я управляю.Мой клиент установил его в свою производственную виртуальную машину Azure (к которой у меня нет доступа), и теперь он постоянно выдает ошибку:
Сертификат X.509 CN = servicebus.windows.net не являетсяв доверенных людях> магазин.… At Microsoft.ServiceBus.Messaging.MessageSender.OnSend (…
Неисправный код задачи скрипта:
MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connStr);
MessageSender msgSender = factory.CreateMessageSender(SBQueueName);
msgSender.Send(JsonMsg); // throws the error
После прочтения других постов, которые я видел в StackOverflow иФорумы Microsoft, насколько я понимаю, при первом запуске этого кода он должен автоматически загрузить и установить необходимый сертификат. Очевидно, этого не происходит, и я подозреваю, что проблема с конфигурацией в производственной среде моего клиента. Вероятно, либо недостаточные привилегии для NTService \ MsDtsServer120 'Виртуальная учетная запись для службы SSIS, или брандмауэр блокирует загрузку сертификата из центра сертификации Microsoft. Поскольку виртуальная учетная запись была настроена с правами доступа по умолчанию, я предполагаю, что проблема заключается в брандмауэре.вероятные изменения правила брандмауэра, необходимые для загрузки сертификата? Или я ошибаюсь, подозревая, что это проблема с брандмауэром?
Я видел обходные пути, предложенные в других сообщениях StackOverflow, включая 1) changвызывая вызывающий ConnectionMode для HTTP или HTTPS, или 2) вручную устанавливая сертификат на ВМ, но я хотел бы более полно понять проблему и решить ее, не прибегая к этим обходным путям, если это возможно.