我正在尝试通过Diagnostics配置设置从Azure VM规模集到事件中心的流式传输。
我的公共配置包括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>"
}
}
然而,事件中心没有收到任何信息。我可以在存储帐户日志中看到Diagnostics扩展程序正在运行:
但在子状态中,SAS密钥和事件中心周围存在许多错误:
当我在Scale集上检查Visual Studio Diagnostics配置时,我看到了这个错误:
我已经检查了SharedAccessKeyName上的命名约定(这是设置事件中心时提供的默认值)知道SAS密钥是否正常工作,因为我编写了一个控制台应用程序,使用相同的凭据将消息发送到同一个事件中心它工作得很好。
因此,事件中心的身份验证显然存在问题,因为它无法从配置文件中读取访问密钥。但是,我无法看到提供它的任何其他方式。
我在配置中遗漏了一些明显的东西吗?
答案 0 :(得分:0)
原来问题很简单,我从门户网站的连接字符串中抓取了URL
sb://myhub.servicebus.windows.net/mycompanyapplication
应该是什么时候
https://myhub.servicebus.windows.net/mycompanyapplication
现在数据正在自由流入事件中心。
然而,VS中的诊断配置仍然显示无法读取SAS密钥的警告,现在看起来像一个“红鲱鱼”,最终花了我很多时间:(