gpt4 book ai didi

c# - 无法在 Azure 虚拟机上打开 TCP channel

转载 作者:可可西里 更新时间:2023-11-01 02:56:52 25 4
gpt4 key购买 nike

我有一个正在运行的 Azure 虚拟机,并且在我编写的 Windows 服务中具有以下逻辑,该服务还托管带有 MEX HTTP 端点的 WCF TCP 端点:

    private void OpenTCPChannel()
{
string fqdn = System.Net.Dns.GetHostEntry("localhost").HostName;
NetTcpBinding binding = new NetTcpBinding(SecurityMode.None, true);
binding.SendTimeout = new TimeSpan(0, 1, 0);
binding.ReceiveTimeout = new TimeSpan(0, 1, 0);
binding.MaxReceivedMessageSize = int.MaxValue;
binding.MaxConnections = int.MaxValue;
binding.ListenBacklog = int.MaxValue;
binding.ReliableSession.Enabled = true;
binding.ReliableSession.Ordered = true;
binding.ReliableSession.InactivityTimeout = new TimeSpan(0, 1, 0);
Uri serviceAddress = new Uri(String.Format("net.tcp://{0}:{1}/GameServer", fqdn, Properties.Settings.Default["GameServerPort"]));
ServiceHost serviceHost = new ServiceHost(service, serviceAddress);
serviceHost.AddServiceEndpoint(typeof(IGameService), binding, serviceAddress);
ServiceMetadataBehavior metadataExchange = new ServiceMetadataBehavior();
metadataExchange.HttpGetEnabled = true;
metadataExchange.HttpGetUrl = new Uri(string.Format("http://{0}:{1}/GameServer", fqdn, Properties.Settings.Default["MEXPort"]));
serviceHost.Description.Behaviors.Add(metadataExchange);
serviceHost.Open();
log.WriteEntry(String.Format("Successfully started TCP endpoint at {0}.", serviceAddress.ToString()));
log.WriteEntry(String.Format("Successfully started MEX endpoint at {0}.", metadataExchange.HttpGetUrl.ToString()));
}

当我在本地测试时,代码运行得很好,但是当我在 Azure VM 上运行服务并打开 TCP channel 时,由于某种原因,我无法访问我的 MEX 端点。

我将尝试导航至:http://<MyServiceName>.cloudapp.net:<MEXPort>/GameServer但我无法从该地址获取服务引用。在如何配置 Azure VM 以允许从本地端口到外部世界的隧道传输方面,我是否遗漏了一些内容?

最佳答案

天哪,文档太少了,但我必须向虚拟机上的 Windows 防火墙中的端口添加规则。

开始 -> 具有高级安全性的 Windows 防火墙 -> 右键单击​​入站规则 -> 添加规则...为您在 Azure 管理门户(在线门户)的终结点部分中指定的端口创建新的端口规则门户)...

关于c# - 无法在 Azure 虚拟机上打开 TCP channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24223192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com