¿Cómo informo un error en el bus de servicio de Windows Server?

Traté de googlear. Microsoft Connect no acepta errores para Service Bus. Azure Portal envía a foros de MS o StackOverflow, así que aquí estoy.

La pregunta realmente está en el título:¿Cómo informo un error con Service Bus?
(no la versión de Azure, sino la que instala en las instalaciones)

Y aquí está el problema:Microsoft.Cloud.ServiceBus.dll tiene una referencia aMicrosoft.Cloud.Common.AzureStorage.dll. Utiliza un tipo de ese ensamblaje, a saber,StorageAccountInfo. Es parte de una sección de configuración (a saber,NamespacePolicyDataStoreFactorySection.Parameters.BlobStorageAccountInfo), pero aparentemente solo tiene sentido en el entorno de Azure, y nunca se usa en el escenario local.Pero aquí está el truco:Microsoft.Cloud.Common.AzureStorage.dll en realidad no se envía con Service Bus 1.1. Traté de encontrarlo en varios SDK y kits de herramientas de Azure, ejemplos y demás (de los cuales tengo mucho), así como en línea, y encontré información zippo sobre esa DLL o dónde obtenerla.Esta es el único lugar donde encontré una mención al respecto.A pesar de ser un WTF en sí mismo, la ausencia de DLL realmente no impide que nada funcione: el tipo no es tocado por ningún código en el escenario local, por lo que no hay quejas.Pero aquí está la segunda captura:mscorlib.dll v4.6.7.0 (que vino con VS2015 CTP5) tiene un ligero cambio en comparación con la versión anterior, 4.0.30319.34014, -System.Attribute.InternalGetCustomAttributes(PropertyInfo,Type,bool), más precisamente,esta línea. Esa línea no existía en la versión anterior demscorlib, y todo estuvo bien. Pero ahora existe, lo que lleva a que el tipo de propiedad seatocado, lo que lleva a cargar la DLL, que falla, porque la DLL no está allí.Entonces todo el proceso comienza con la carga de la sección de configuraciónNamespacePolicyDataStoreFactorySection y funciona así:
  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)
Algunos intentos (inútiles) de una solución alternativaElimine la sección de configuración de config. Desafortunadamente, Service Bus no es muy tolerante a fallas a este respecto: falla con NRE cuando la sección no está presente. También es imposible proporcionar una sección de configuración alternativa "controlador", porque en el sistema de configuración de .NET "controlador" y "datos" son lo mismo.Proporcione una DLL falsa con el tipo necesario. No puedo hacer eso, porque todo está fuertemente nombrado.Encuentra la DLL que falta en alguna parte. Intenté eso y fallé. No hay menciones de la DLL en la web, y mucho menos los bits.

Un lector cuidadoso puede preguntar: ¡vaya, espere un minuto! VS2015 CTP5 ?! ¿Está diciendo que instaló el software de prelanzamiento en una máquina que funciona? Pues bien, por supuesto que no funciona, ¿qué esperabas? ¡Eso te enseñará a ser el primer adoptante!
Y el lector cuidadoso sería absolutamente correcto: totalmente culpa mía, conocía peligros potenciales, lo hice de todos modos, me sirve bien.

Pero ese no es el punto. Mi instalación de software de prelanzamiento no disminuye la WTFness de hacer referencia a una DLL, pero no la envía. Aunque personalmente estaré bien, solo quiero asegurarme de que esto no deje de funcionar repentinamente cuando se lance .NET 5 y llegue a Windows Update.

Respuestas a la pregunta(3)

Su respuesta a la pregunta