首页 > 解决方案 > 带有 VPN 的本地 Service Fabric 无法正常工作

问题描述

我有一个本地 Service Fabric 群集,其中 1 个节点在 VPN 开启时无法正常工作。我有一个 catch 22,在调试模式下运行集群时,我需要 VPN 连接到外部服务。

如果我在没有VPN的情况下启动集群,它会工作,然后在集群启动后,打开VPN。这工作了一段时间,但一旦我关闭集群(即当我需要重新编译/调试时)它就不会重新启动。

有没有办法打开 VPN,我可以像在任何其他正常的应用程序开发中一样启动/关闭集群?

标签: c#vpnazure-service-fabric

解决方案


有 3 个选项。

  1. 禁用服务结构 DNS 服务,如果您不使用服务结构 dns,我会建议这样做。
  2. 使用备用 DNS
  3. 连接到 VPN 后重置您的 DNS 设置,并在您的主机文件中添加所有 DNS IP 映射。

选项1

更改本地集群配置。您的 clusterconfig 位于:C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup

因此,如果您的开发集群是单节点不安全的,您可以更改:C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\NonSecure\OneNode\ClusterManifestTemplate.json

在“addOnFeatures”标签中,您可以删除“DnsService”示例:

"addOnFeatures": [
   "DnsService",
   "EventStoreService",
]

完成这些步骤后,您可以从系统托盘重置您的开发集群。(右键单击服务结构图标 => 重置本地集群)

您可以验证是否在 Service Fabric Explorer 中禁用了 DNS 服务: sf 集群 - dns 服务

选项 2

  1. 打开当前连接的 TCP/IPv4 属性(通过控制面板\所有控制面板项\网络连接)
  2. 在连接 VPN 之前,将首选 DNS 更改为正在使用的一种服务结构
  3. 将 VPN 的第一个 DNS 放在备用 DNS 服务器文本框中。 连接 DNS 设置

选项 3

  1. 连接到 VPN
  2. 查找您需要的 FQDN 的所有 IP 地址。(您可以在命令行中使用 ping)
  3. 打开C:\Windows\System32\drivers\etc\hosts
  4. 添加所有 ip FQDN 映射(每行 1 个)。例子:1.1.1.1 your.company.com
  5. 将您的 DNS 设置更改为默认配置。

推荐阅读