Подтвердить что ты не робот

Как сообщить об ошибке в служебной шине Windows Server?

Я попробовал Google. Microsoft Connect не принимает ошибки для служебной шины. Azure Portal отправляется на форумы MS или в StackOverflow, поэтому я здесь.

Вопрос действительно в заголовке: как сообщить об ошибке с Service Bus?
(а не версию Azure, но тот, который вы устанавливаете в помещениях)

И вот проблема:

  • Microsoft.Cloud.ServiceBus.dll имеет ссылку на Microsoft.Cloud.Common.AzureStorage.dll. Он использует один тип из этой сборки, а именно StorageAccountInfo. Это часть раздела конфигурации (а именно, NamespacePolicyDataStoreFactorySection.Parameters.BlobStorageAccountInfo), но, по-видимому, имеет смысл только в среде Azure и никогда не используется в сценарии на локальном уровне.
  • Но вот catch: Microsoft.Cloud.Common.AzureStorage.dll на самом деле не поставляется с Service Bus 1.1. Я попытался найти его в различных пакетах SDK и Azure, образцах и много чего (из которых у меня много), а также в Интернете - и нашел информацию об этой библиотеке zippo или где ее можно получить. Это... это единственное место, где я нашел упоминание об этом.
  • Несмотря на то, что WTF сам по себе, отсутствие DLL действительно не мешает чему-либо работать: тип на самом деле не затрагивается каким-либо кодом в локальном сценарии, поэтому никаких жалоб.
  • Но вот второй улов: mscorlib.dll v4.6.7.0 (который поставляется с VS2015 CTP5) имеет небольшое изменение по сравнению с предыдущей версией, 4.0.30319.34014, - в System.Attribute.InternalGetCustomAttributes(PropertyInfo,Type,bool), точнее, эта строка. Эта строка не существовала в предыдущей версии mscorlib, и все было в порядке. Но теперь он существует, что приводит к касанию типа свойства, что приводит к загрузке DLL, которая терпит неудачу, поскольку DLL не существует.
  • Итак, весь процесс начинается с загрузки раздела конфигурации NamespacePolicyDataStoreFactorySection и работает следующим образом:

  ConfigurationManager.GetSection -> 
  ... -> 
  BaseConfigurationRecord.GetSectionRecursive -> 
  ... -> 
  BaseConfigurationRecord.CallCreateSection -> 
  MgmtConfigurationRecord.CreateSection -> 
  ConfigurationElement.Reset -> 
  ConfigurationElement.get_Properties -> 
  ConfigurationElement.PropertiesFromType -> 
  ConfigurationElement.CreatePropertyBagFromType -> 
  Attribute.GetCustomAttribute (for property BlobStorageAccountInfo of type StorageAccountInfo) ->
  ... ->
  Attribute.InternalGetCustomAttributes(PropertyInfo) ->
  Attributes.GetIndexParameterTypes ->
  RuntimePropertyInfo.GetIndexParameters ->
  ... ->
  RuntimeMethodInfo.GetParameters ->
  ... ->
  kaboom! (touches the return type, tries to load DLL containing it, fails)

Некоторые (бесполезные) попытки обходного пути

  • Удалите раздел конфигурации из config. К сожалению, служебная шина не очень устойчива к ошибкам в этом отношении: сбой в NRE, когда раздел отсутствует. Также невозможно предоставить альтернативный раздел конфигурации "обработчик", поскольку в системе конфигурации .NET "обработчик" и "данные" - это одно и то же.
  • Предоставьте поддельную DLL с нужным типом. Не могу этого сделать, потому что все сильно названо.
  • Найти отсутствующую DLL где-нибудь. Пробовал это и потерпел неудачу. В библиотеке нет упоминаний о DLL, не говоря уже о битах.

Тщательный читатель может спросить: аа, подожди минутку! VS2015 CTP5?! Вы говорите, что вы установили программное обеспечение до выпуска на рабочую машину?! Ну, тогда, конечно, это не сработает, чего вы ожидали? Это научит вас быть ранним усыновителем!
И внимательный читатель был бы абсолютно прав: полностью моя вина, я знал о потенциальных опасностях, я все равно делал это правильно.

Но это не так. Моя установка предварительного выпуска программного обеспечения не уменьшает WTFness ссылки на DLL, но не отправляет ее. Хотя я лично буду в порядке, я просто хочу убедиться, что это не перестанет работать, когда .NET 5 выпущен и попадает в Центр обновления Windows.

4b9b3361

Ответ 1

Я знаю, что это поздний ответ на вопрос, и на самом деле это не ответ на заданный вопрос, но сегодня, после установки VS 2015 RC на ПК с Windows Service Bus 1.1 и перезапуском ПК, мой шлюз службы служебной шины перестала работать, и я прошел через всю боль, описанную в этом вопросе, но, наконец, смог выработать решение из сценария поддельной сборки. Здесь решение:

  • Создал поддельную сборку Microsoft.Cloud.Common.AzureStorage.dll с версией 2.1.0.0 и подписал ее с новым ключевым файлом.
  • Разберите его, используя: ildasm/all/out=azurestorage.il Microsoft.Cloud.Common.AzureStorage.dll
  • Извлечен открытый ключ и токен открытого ключа из другой сборки Microsoft.Cloud. *, расположенной в папке служебной шины по ildasm/Tp Microsoft.Cloud.Common.Diagnostics.dll
  • Открыл azurestorage.il в текстовом редакторе и изменил токен открытого ключа и открытый ключ с теми, которые были извлечены на последнем шаге.
  • Соберите файл il: ilasm/dll azurestorage.il/out=Microsoft.Cloud.Common.AzureStorage.dll
  • Зарегистрировать сборку для проверки проверки подписи с помощью: sn -Vr Microsoft.Cloud.Common.AzureStorage.dll
  • Установлена ​​результирующая сборка в GAC: gacutil/i Microsoft.Cloud.Common.AzureStorage.dll

и он наконец-то сработал. Надеюсь, это поможет любому, кто застрял в этой проблеме.

Ответ 3

поскольку я понимаю, что вам нужно сообщить об ошибке Microsoft, и я узнал, что вам нужно сообщить об ошибке Microsoft. Полезно знать, что Microsoft будет использовать пользователей, которые сообщают об ошибках.

В соответствии с ответом Microsoft вы можете сообщать об ошибках Microsfot: https://connect.microsoft.com/

Примечание. У вас должна быть учетная запись microsoft, вы можете сделать ее на hotmail.com

И я знаю, что некоторые из продуктов Microsoft не существуют, как outlook.com

Сначала перейдите в https://connect.microsoft.com/:


ШАГ ПО ШАГУ

i.stack.imgur.com/CewDL.png

Шаг 1: напишите программе, что вы хотите сообщить об ошибке, а затем нажмите на соединение.


i.stack.imgur.com/pJbQY.png

Шаг 2: Нажмите "Продолжить".


i.stack.imgur.com/cCgXq.png

Шаг 3: Составьте свой профиль.


i.stack.imgur.com/PVqXi.png

Шаг 4: Нажмите на отзыв.


i.stack.imgur.com/nL5Kr.png

Шаг 5: Напишите заголовок ошибки в текстовом поле в конце страницы.


i.stack.imgur.com/gEOJG.png

Шаг 6: Затем нажмите отправить отзыв


i.stack.imgur.com/MQgV0.png

Шаг 7: Теперь вы можете написать эту проблему и сообщить Microsoft об этой ошибке.