发送到Azure Event Hub错误

时间:2018-07-23 19:35:16

标签: c# azure azure-eventhub

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

它构建良好,但是每次都会收到相同的异常。消息如下:远程主机强行关闭了现有连接。这个问题已被before问到,但从未得到回答。

为确保正确执行此操作,请在将图片附加到获得事件中心连接字符串和中心名称的值的位置附加图片。

我从那里获得事件中心连接字符串的地方。

Where I got the Event Hub Connection String from.

这是在名称空间中-而不是集线器本身。

我从哪里获得的集线器名称。 Where I got the Hub Name from.

代码如下:

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

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

3 个答案:

答案 0 :(得分:1)

@Jamie Penzien,我一直被这个完全相同的错误困扰了几天,而我的同事要求我更改以下部分,并且它起作用了。

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

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

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:0)

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

currentSrc

但是,由于防火墙问题,我收到此异常。我必须打开端口(现在正在处理),以允许与事件中心的出站通信。我相信这些是5671和5672端口。

感谢所有回答,@ RayX把它钉在头上。