Как я могу сообщить об ошибке в Windows Server Service Bus?

Я пытался гуглить. Microsoft Connect не принимает ошибки для служебной шины. Портал Azure отправляет на форумы MS или в StackOverflow - вот и я.

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

И вот вопрос:Microsoft.Cloud.ServiceBus.dll имеет ссылку наMicrosoft.Cloud.Common.AzureStorage.dll, Он использует один тип из этой сборки, а именно,StorageAccountInfo, Это часть раздела конфигурации (а именно,NamespacePolicyDataStoreFactorySection.Parameters.BlobStorageAccountInfo), но, очевидно, имеет смысл только в среде Azure и никогда не используется в локальном сценарии.Но вот подвох:Microsoft.Cloud.Common.AzureStorage.dll фактически не поставляется с Service Bus 1.1. Я пытался найти его в различных SDK и наборах инструментов Azure, в примерах и тому подобном (а их у меня много), а также в Интернете - и нашел в zippo информацию об этой DLL или о том, где ее взять.это это единственное место, где я нашел упоминание об этом.Несмотря на то, что сам по себе он является WTF, отсутствие DLL не мешает работе: тип фактически не затрагивается никаким кодом в локальном сценарии, поэтому никаких претензий нет.Но вот второй улов:mscorlib.dll v4.6.7.0 (который поставляется с CTP5 VS2015) имеет небольшое изменение по сравнению с предыдущей версией, 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)
Некоторые (тщетные) попытки обходаУдалите раздел конфигурации из конфигурации. К сожалению, служебная шина не очень отказоустойчива в этом отношении: происходит сбой с NRE, когда раздел отсутствует. Также невозможно предоставить альтернативный раздел конфигурации «обработчик», потому что в системе конфигурации .NET «обработчик» и «данные» - это одно и то же.Предоставьте поддельную DLL с нужным типом. Не могу этого сделать, потому что все строго названы.Найдите недостающую DLL где-нибудь. Попробовал это и не удалось. Там нет упоминаний о DLL в Интернете, не говоря уже о битах.

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

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

Ответы на вопрос(1)

Ваш ответ на вопрос