无法从公司网络连接到Azure事件中心

时间:2018-11-08 00:02:52

标签: azure azure-eventhub

我正在使用Azure Event Hub。当我连接到公司网络时,在连接到Azure事件中心时遇到问题。如果我在不加入corpnet网络的情况下运行代码,则效果很好。 当我连接到公司网络时,针对事件中心进行的Telnet测试看起来不错。

有什么办法解决这个问题吗?

下面是代码,错误消息和堆栈跟踪。

代码

np.nan

错误消息

var proceed = true;

function Mes(mes, lluvia) {
  this.month = mes;
  this.rain = lluvia;
}

datos = [];

meses = ["Enero", "Febrero"];

while (proceed) {
  var mes = prompt("Ingresa el mes", "");
  if (meses.includes(mes)) {
    var lluvia = parseInt(prompt("Ingrese los ml de lluvia correspondiente al mes", ""));
    datos.push(new Mes(mes, lluvia));
  } else {
    alert("Mal mes");
  }
  proceed = confirm("Deseas continuar?");
}

var totals = datos.reduce((obj, {month, rain}) => {
  if (month in obj) {
    obj[month] += rain;
  } else {
    obj[month] = rain;
  }
  return obj;
}, {});

document.write("<table>");
document.write("<tr><th>Mes</th><th>Total</th></tr>");

meses.forEach(month => {
  document.write("<tr>");
  document.write("<td>" + month + "</td>");
  document.write("<td>" + totals[month] + "</td>");
  document.write("</tr>");
});
document.write("</table>");

堆栈跟踪

            public async Task SendDataAsync(CoffeeMachineData data)
            {
                EventData eventData = CreateEventData(data);
                await _eventHubClient.SendAsync(eventData);
            }



            private static EventData CreateEventData(CoffeeMachineData data)
            {
                var dataAsJson = JsonConvert.SerializeObject(data);
                var eventData = new EventData(Encoding.UTF8.GetBytes(dataAsJson));
                return eventData;
            }

2 个答案:

答案 0 :(得分:0)

  

有什么办法解决这个问题吗?

请尝试将ConnectivityMode设置为https(443端口)

SELECT table1.column1, table2.column2...
FROM table1
WHERE NOT EXISTS (
                  select 1
                  from table2
                  where table2.common_field = table1.common_field
                  AND table2.common_field_2 = table1.common_field_2
                 )
AND table1.column3 = ...

似乎防火墙限制阻止了端口 5671 5672 上的所有流量。默认情况下,TCP端口用于传输操作。

我们可以在Azure Service Bus and Event Hubs protocol guide中从AMQP 1.0获得更多信息。

如果可能,您可以尝试打开端口 5671 5672

答案 1 :(得分:0)

我们找到了解决方案。在构建事件中心的连接字符串时,我们必须使用AmqpWebSockets。

        var connectionStringBuilder = new EventHubsConnectionStringBuilder(eventHubConnectionString)
        {
            EntityPath = entityName,
            TransportType = TransportType.AmqpWebSockets
        };