Azure Service Fabric:无法运行本地 Service Fabric 群集
Posted
技术标签:
【中文标题】Azure Service Fabric:无法运行本地 Service Fabric 群集【英文标题】:Azure Service Fabric: cannot run local Service Fabric Cluster 【发布时间】:2016-09-28 13:45:05 【问题描述】:我对 Azure Service Fabric 有疑问。
我已经按照https://azure.microsoft.com/en-gb/documentation/articles/service-fabric-get-started/ 中的说明安装了它(在 Windows 7 上)。
然后我尝试从 Visual Studio 2015 运行 Service Fabric 应用程序。我收到错误“Connect-ServiceFabricCluster:无法访问群集端点,请检查是否存在连接/防火墙/DNS 问题”。
这是该运行的填充日志:
1>------ Build started: Project: Application2, Configuration: Debug x64 ------
2>------ Deploy started: Project: Application2, Configuration: Debug x64 ------
-------- Package started: Project: Application2, Configuration: Debug x64 ------
Application2 -> c:\temp\Application2\Application2\pkg\Debug
-------- Package: Project: Application2 succeeded, Time elapsed: 00:00:01.7361084 --------
2>Started executing script 'Set-LocalClusterReady'.
2>Import-Module 'C:\Program Files\Microsoft SDKs\Service Fabric\Tools\Scripts\DefaultLocalClusterSetup.psm1'; Set-LocalClusterReady
2>--------------------------------------------
2>Local Service Fabric Cluster is not setup...
2>Please wait while we setup the Local Service Fabric Cluster. This may take few minutes...
2>
2>Using Cluster Data Root: C:\SfDevCluster\Data
2>Using Cluster Log Root: C:\SfDevCluster\Log
2>
2>Create node configuration succeeded
2>Starting service FabricHostSvc. This may take a few minutes...
2>
2>Waiting for Service Fabric Cluster to be ready. This may take a few minutes...
2>Local Cluster ready status: 4% completed.
2>Local Cluster ready status: 8% completed.
2>Local Cluster ready status: 12% completed.
2>Local Cluster ready status: 17% completed.
2>Local Cluster ready status: 21% completed.
2>Local Cluster ready status: 25% completed.
2>Local Cluster ready status: 29% completed.
2>Local Cluster ready status: 33% completed.
2>Local Cluster ready status: 38% completed.
2>Local Cluster ready status: 42% completed.
2>Local Cluster ready status: 46% completed.
2>Local Cluster ready status: 50% completed.
2>Local Cluster ready status: 54% completed.
2>Local Cluster ready status: 58% completed.
2>Local Cluster ready status: 62% completed.
2>Local Cluster ready status: 67% completed.
2>Local Cluster ready status: 71% completed.
2>Local Cluster ready status: 75% completed.
2>Local Cluster ready status: 79% completed.
2>Local Cluster ready status: 83% completed.
2>Local Cluster ready status: 88% completed.
2>Local Cluster ready status: 92% completed.
2>Local Cluster ready status: 96% completed.
2>Local Cluster ready status: 100% completed.
2>WARNING: Service Fabric Cluster is taking longer than expected to connect.
2>
2>Waiting for Naming Service to be ready. This may take a few minutes...
2>Connect-ServiceFabricCluster : **No cluster endpoint is reachable, please check
2>if there is connectivity/firewall/DNS issue.**
2>At C:\Program Files\Microsoft SDKs\Service
2>Fabric\Tools\Scripts\ClusterSetupUtilities.psm1:521 char:12
2>+ [void](Connect-ServiceFabricCluster @connParams)
2>+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2> + CategoryInfo : InvalidOperation: (:) [Connect-ServiceFabricClus
2> ter], FabricException
2> + FullyQualifiedErrorId : TestClusterConnectionErrorId,Microsoft.ServiceFa
2> bric.Powershell.ConnectCluster
2>
2>Naming Service ready status: 8% completed.
2>Naming Service ready status: 17% completed.
2>Naming Service ready status: 25% completed.
2>Naming Service ready status: 33% completed.
2>Naming Service ready status: 42% completed.
2>Naming Service ready status: 50% completed.
2>Naming Service ready status: 58% completed.
2>Naming Service ready status: 67% completed.
2>Naming Service ready status: 75% completed.
2>Naming Service ready status: 83% completed.
2>Naming Service ready status: 92% completed.
2>Naming Service ready status: 100% completed.
2>WARNING: Naming Service is taking longer than expected to be ready...
2>Local Service Fabric Cluster created successfully.
2>--------------------------------------------------
2>Launching Service Fabric Local Cluster Manager...
2>You can use Service Fabric Local Cluster Manager (system tray application) to manage your local dev cluster.
2>Finished executing script 'Set-LocalClusterReady'.
2>Time elapsed: 00:07:01.8147993
2>The PowerShell script failed to execute.
========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========
【问题讨论】:
你试过用浏览器访问端点吗? 是的,我有。我试图去 Windows 托盘\Service Fabric Local Cluster Manager 并打开资源管理器工具(这是localhost:19080/Explorer)。当然,我得到了错误。尝试在浏览器中打开 localhost:19080/Explorer 会带来“无法访问此站点”消息。这是意料之中的——我看到像 Fabric.exe 或 FabricGateway 这样的程序还没有启动。换句话说——我的本地 Fabric Cluster 已经创建(作为 C: 上的文件夹),但它的程序还没有启动。 FabricHostSvc 服务启动了吗? "FabricHostSvc 服务启动了吗?" - 在默认帐户本地系统下,它最初无法启动。我已更改帐户 ti NETWORK SERVICE - 该服务开始工作。但是 - 谁知道 - 也许这种变化引入了我正在谈论的问题。 您是否尝试过此页面中的选项? azure.microsoft.com/en-us/documentation/articles/… 【参考方案1】:这对我有用,我在 MSDN 论坛上偶然发现了 solution。
很可能您的 C++ 运行时已损坏,需要重新安装。 您必须手动执行 vcredist_x64.exe,该文件位于
C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code\vcredist_x64.exe
完成后,您可以选择是否重新启动您的机器,我选择重新启动它然后运行以下命令
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\CleanCluster.ps1
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1
我希望这会有所帮助!
【讨论】:
你是怎么知道的?谢谢! @Nate-Wilkins 偶然发现了 MSDN 上的一个帖子!我不知道这可以解决它,但我束手无策,也必须尝试一下,它才有效! 你在 MSDN 中是否有帖子的链接? @konkked 你去social.msdn.microsoft.com/Forums/sqlserver/en-US/…【参考方案2】:我不得不断开我的 *** 与我的办公室以及 Varun 上面显示的方向的连接。
感谢@Varun 分享这个!!
连接 *** 后,我无法再次运行系统。
希望这对某人有所帮助。
【讨论】:
【参考方案3】:在尝试了很多解决方案后,我发现这个GitHub Issue 有助于在设置配置中添加一个条目,然后我不得不重新创建集群。
配置文件
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\NonSecure\OneNode\ClusterManifestTemplate.json:
要添加的条目
"name": "FabricContainerAppsEnabled",
"value": "false"
【讨论】:
这对我有用,但我错误地更改了 OneNode 模板并启动了一个 5 节点集群。更改 FiveNode 模板或运行:C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1 -CreateOneNodeCluster【参考方案4】:默认情况下,Service Fabric 开发实例正在运行以仅侦听环回地址(只需在 CMD 中运行 netstat -an
命令即可查看打开了哪些端口):
正如您在屏幕上方看到的,我的 SF 实例正在端口 19000 上侦听所有地址(可用的外部连接)
默认19000端口只监听环回地址(127.0.0.1)
[::1]:19000
您只需将 IPAddressOrFQDN 从 localhost 更改为 IPv4 外部地址。在清单文件中应该可以看到hange:
Windows 7 中的所有 SF 集群配置文件都位于C:\SfDevCluster\Data
。在那里您可以找到许多 XML 文档,例如:
要更改 IPAddressOrFQDN,我已将所有出现的单词 'localhost' 替换为 'my.ip.address.here'。修改的文件也比较深:
C:\SfDevCluster\Data\_Node_0\Fabric
C:\SfDevCluster\Data\_Node_0\Fabric\Fabric.Data
C:\SfDevCluster\Data\_Node_0\Fabric\Fabric.Config.0.0
等等
在更改停止集群之前:
毕竟再次运行它:
还有另一种更好的方法。您可以更改目录C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup
中的生成脚本。
集群重置后,此设置将丢失。请记住,风险自负,开发版本不安全,不应在生产环境中使用。
如果挂起后您无法连接到 SF - 请确保防火墙没有阻止端口(您可以临时禁用您的防火墙)
【讨论】:
【参考方案5】:如果 C++ 运行时不能解决您的问题,您可以将解决方案缩小到防火墙问题。由于安全问题,网络不允许用户运行您可以在 services.msc 中检查的 FabricHostSvc 服务。如果您能够无限制地禁用防火墙/更改网络,则该问题应自行解决。
如果您能够启动 FabricHostSvc,您的问题将得到解决。
希望这会有所帮助.....
【讨论】:
【参考方案6】:嘿,第一个答案(@Varun Rathore 给出)对我有用。但是当我试图在本地服务结构上部署容器时,一次又一次地从 1 节点集群切换到 5 节点集群,这个错误经常出现。所以我所做的就是以 Administrator 身份打开 powershell 并执行接下来的 2 个步骤。
首先去下面的路径
cd "C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup"
第二次运行这两个文件
.\CleanCluster.ps1
.\DevClusterSetup.ps1
这将在您的本地计算机上设置 1 个节点集群。 您可以从服务结构集群管理器执行此操作,但它对我不起作用。每次修复 vcredist_x64.exe 文件并重新启动计算机(Windows 10 Pro)都令人沮丧。这对我有用。
【讨论】:
【参考方案7】:您可以重置结构集群(如果您没有状态服务,并且不需要数据持久性),或者您可以重新启动结构集群,有时切换节点也很有帮助。
【讨论】:
以上是关于Azure Service Fabric:无法运行本地 Service Fabric 群集的主要内容,如果未能解决你的问题,请参考以下文章
外部客户端无法访问 Azure Service Fabric 上的 WCF 通信侦听器
Azure Service Fabric 集群在 Windows 7 单机上运行 Windows 容器
Azure Service Fabric 错误:访问被拒绝。部署失败
Azure Devops 无法连接到 Service Fabric 群集
Azure App Service 与 Azure Service Fabric [关闭]
无法通过 Powershell 或 Visual Studio 连接到受保护的 Azure Service Fabric 群集