我正在使用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;
}
答案 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
};