wcf - 在 Azure PaaS 上配置 MTU 大小

标签 wcf azure networking tcp azure-web-roles

我们正在北欧的 Windows Azure Web 角色上运行基于 WCF 的 API。最近,我们遇到了与在 AWS 美国东部运行的客户端的连接非常不稳定的问题。我们的 Azure 实例的wireshark转储显示 TCP 数据包在路径上的某个地方丢失,并且我们的 Azure 实例发生了多次 TCP 重新传输。

AWS 出色的支持帮助我们确定,这可能是由于 Azure 实例使用片段大小 > 1500 字节的巨型帧以及路径 MTU 发现无法正常工作而造成的。需要注意的是,通常连接会在 TLS 握手中卡住(我们的 API 通过 HTTPS 运行),因为 TLS Hello 包约为 5000 字节。

我的问题是,在 Azure PaaS 上配置 MTU 大小的推荐方法是什么?当云结构重新定位实例等时,在实例上运行 netsh 命令不会持久。

另外,有人遇到过类似的问题吗?我担心在降低默认值 MTU 时,其他云资源(SQL Azure、Blob 存储、服务总线)的网络性能会下降。

最佳答案

为什么不在启动任务中设置 MTU 配置? 每次启动/重新启动时都会再次运行 您还可以检查角色是否未移动,并忽略脚本...

https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks-common/#detect-that-your-task-has-already-run

默认情况下不启用巨型帧,因此您可以在启动时运行 PS 脚本,然后手动启用它。

Get-NetAdapterAdvancedProperty -DisplayName "Jumbo Packet" | Set-NetAdapterAdvancedProperty –RegistryValue "9014"

我希望它能在某种程度上有所帮助。

关于wcf - 在 Azure PaaS 上配置 MTU 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38474045/

相关文章:

iphone - 我如何连接到名为 "A"的受密码保护的 wifi

c# - 我应该为 WPF 应用程序创建什么样的 WCF 服务?/域服务

c# - 调用 C# 方法,并使其在 10 秒后返回

postgresql - Azure Microsoft.DBforPostgreSQL secureServers 数据库排序规则

ssl - 尝试了解 Tor 及其与 SSL 的关系

c# - 从数据包中删除 PPPOE 层

c# - WCF:嵌套的 DataContract 值为空

c# - 服务 OnShutDown() 期间的 WCF 调用

azure - 缺少 Azure 部署的 FileSystemPublish 目标

azure - 添加 key 保管库访问权限,同时保留现有权限