繁体   English   中英

发送到Azure事件中心错误

[英]Sending to Azure Event Hub Error

我对C#,Microsoft Azure以及基本上所有东西都是全新的。 我正在尝试设置一个可以向其发送数据的Azure事件中心。 现在我只是按照这里可以找到的教程。

它构建得很好,但每次都会收到相同的异常。 消息如下:远程主机强制关闭现有连接。 这个问题以前曾被问但从未回答过。

只是为了确保我正确这样做我正在附加图片,我获取了事件中心连接字符串和中心名称的值。

从哪里获得事件中心连接字符串。

从哪里获得事件中心连接字符串。

这个位于命名空间内 - 而不是中心本身。

我从哪里获得了Hub名称。 我从哪里获得了Hub名称。

代码如下:

private const string EventHubConnectionString = "<Connection String>";
private const string EventHubName = "eventhubtest";

集线器名称必须只是那个或路径吗? 任何想法或帮助将不胜感激。 谢谢。

@Jamie Penzien,我几天坚持这个完全相同的错误,我的同事让我改变了以下部分并且它有效。

var connectionStringBuilder = new EventHubsConnectionStringBuilder(EventHubConnectionString)
{
    EntityPath = EventHubName,
    TransportType = TransportType.AmqpWebSockets                
};

我仍然试图了解原因,这可能与公司的防火墙设置有关。

Eventhub名称或实体路径将只是在EventHub名称空间下找到的EventHub的名称。

您可以使用以下代码创建客户端:

EventHubClient eventHubClient;
var connectionStringBuilder = new EventHubsConnectionStringBuilder(EventHubConnectionString)
{
     EntityPath = EventHubName
};
eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());

可以在Microsoft.Azure.EventHubs包下找到EventHubsConnectionStringBuilder。

我回答了自己的问题。 首先,我需要更改连接字符串并确保它包含其中的实体路径。 然后在建立集线器客户端时我做了这个:

eventHubClient = EventHubClient.CreateFromConnectionString(EventHubConnectionString);

但是,由于防火墙问题,我特意得到了这个例外。 我必须打开端口(现在正在处理它)以允许到事件中心的出站通信。 我相信这些是5671和5672端口。

感谢所有回答的人和@RayX,他们把它钉在头上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM