Visual Studio 事件中心设置中的诊断配置错误

Visual Studio diagnostics configuration error in event hub set up

我正在尝试通过诊断配置设置从 Azure VM 规模集到事件中心的流式传输。

我有我的 public 配置,其中包括 SinksConfig 如下(为了简洁起见,我省略了配置的其余部分):

{
 "WadCfg": {
     "DiagnosticMonitorConfiguration": {

     *** config for performance counters and ETW ***

       "SinksConfig": {
            "Sink": [
             {
               "name": "eventhub",
               "EventHub": {
               "Url": "sb://myhub.servicebus.windows.net/mycompanyapplication",
               "SharedAccessKeyName": "RootManageSharedAccessKey"
             }
           }
         ]
       }
     },
    "StorageAccount": "<storageaccount>"
}  

和私有配置:

{
   "storageAccountName": "<storageaccountname>",
   "storageAccountKey": "<storageaccountkey>",
   "storageAccountEndPoint": "https://core.windows.net",
   "EventHub": {
         "Url": "sb://myhub.servicebus.windows.net/mycompanyapplication",
         "SharedAccessKeyName": "RootManageSharedAccessKey",
         "SharedAccessKey": "<sharedaccesskey>"
   }
}

但是,事件中心没有收到任何信息。我可以在存储帐户日志中看到诊断扩展是 运行:

但在子状态中,SAS 密钥和事件中心有很多错误:

当我再次查看规模集上的 Visual Studio 诊断配置时,我看到了这个错误:

我已经检查了 SharedAccessKeyName 的命名约定(这是设置事件中心时提供的默认设置),知道 SAS 密钥在我编写控制台应用程序以将消息发送到与相同的凭据,它工作正常。

因此事件中心的身份验证显然存在问题,因为它无法从配置文件中读取访问密钥。但是,我看不到提供它的任何其他方式。

我的配置中是否遗漏了一些明显的东西?

事实证明问题很简单,我从门户中的连接字符串中获取了 URL

sb://myhub.servicebus.windows.net/mycompanyapplication

什么时候应该

https://myhub.servicebus.windows.net/mycompanyapplication

现在数据可以自由地流入事件中心。

但是,VS 中的诊断配置仍然显示无法读取 SAS 密钥的警告,现在看起来像 "red herring",最终花费了我很多时间:(