gpt4 book ai didi

wcf - 使用 WCF HTTPS 终结点从控制台应用程序调用 Service Fabric 服务

转载 作者:行者123 更新时间:2023-12-03 04:26:49 24 4
gpt4 key购买 nike

我有一个服务托管在 Azure 的 Service Fabric 群集中(不是本地),我正在尝试使用本地计算机上的控制台应用程序调用其中的方法。我使用 WCF 进行通信,在应用程序中的特定端口上设置了 HTTPS 终结点,并在 Azure 门户中为该端口配置了负载平衡规则。集群有6个节点,应用程序是集群上部署的唯一一个。

已关注 GitHub 上的 ServiceFabric.WcfCalc ( link ),它在使用 HTTP 端点的本地集群上工作,但在部署后无法使用 HTTPS 端点调用服务上的方法。我需要做什么才能使其正常工作?已尝试按照示例 here但不知道如何为 HTTPS 配置此服务,并在多个节点上提供服务以供控制台应用程序访问。

提前致谢。

编辑这是我用来调用服务方法的客户端代码。我将 Fabric:/URI 传递到此处的构造函数中。

public class Client : ServicePartitionClient<WcfCommunicationClient<IServiceInterface>>, IServiceInterface
{
private static ICommunicationClientFactory<WcfCommunicationClient<IServiceInterface>> communicationClientFactory;

static Client()
{
communicationClientFactory = new WcfCommunicationClientFactory<IServiceInterface>(
clientBinding: new BasicHttpBinding(BasicHttpSecurityMode.Transport));
}

public Client(Uri serviceUri)
: this(serviceUri, ServicePartitionKey.Singleton)
{ }

public Client(
Uri serviceUri,
ServicePartitionKey partitionKey)
: base(
communicationClientFactory,
serviceUri,
partitionKey)
{ }


public Task<bool> ServiceMethod(DataClass data)
{
try
{
//It hangs here
return this.InvokeWithRetry((c) => c.Channel.ServiceMethod(data));
}
catch (Exception)
{
throw;
}
}
}

在本地计算机上调试控制台应用程序时,应用程序卡在 InvokeWithRetry 调用上,该调用调用 Service Fabric 中的服务中的方法。应用程序不会引发任何异常,也不会返回到 Visual Studio 中的调试器。

最佳答案

  • 确保使用唯一的 URL 运行每个服务实例/replica。

  • 确保使用 WebHttpSecurityMode.Transport 调用 WebHttpBinding 构造函数。

  • 确保您使用与服务 list 端点 declaration 中相同的端口号(可能是 443)注册网址。 .

  • 确保端点配置为 HTTPS

关于wcf - 使用 WCF HTTPS 终结点从控制台应用程序调用 Service Fabric 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42202912/

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