У меня есть служба, размещенная в кластере Service Fabric в Azure (не локально), и я пытаюсь вызвать метод в нем с помощью консольного приложения на моей локальной машине. Используя WCF для связи, у меня есть конечная точка HTTPS, настроенная в моем приложении на определенном порту, и настроил правила балансировки нагрузки для порта на портале Azure. Кластер имеет 6 узлов, и приложение является единственным, установленным в кластере.Служба обслуживания вызовов из консольного приложения с использованием конечной точки WCF HTTPS
Последовало за ServiceFabric.WcfCalc на GitHub (link), которое работает на локальном кластере с использованием конечных точек HTTP, но не может вызвать метод службы с использованием конечных точек HTTPS после его развертывания. Что мне нужно сделать, чтобы заставить его работать? Попробовали по примеру here, но не знаете, как настроить это для HTTPS с помощью службы на нескольких узлах для доступа к консольному приложению.
Заранее спасибо.
EDIT Вот мой код клиента, который я использую для вызова метода службы. Я передаю структуру:/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.
Какую ошибку или проблему вы видите при попытке вызвать метод службы, развернутой в кластере? Тайм-аут или что-то еще? – yoape
В моем коде не исключены исключения, хотя я вижу в проводнике кластера службы Fabric следующее предупреждение: «HTTP не смог зарегистрировать URL http: // +: 443/26c710ea-38b9-4416-9d70-c1710e698521/8d259277- ed49-4e11-b7ec-fac80075297e-131314658022522000 /. Другое приложение уже зарегистрировало этот URL-адрес с помощью HTTP.SYS. " Это происходит, когда я вызываю метод службы из консольного приложения на моем локальном компьютере. Отредактированный вопрос выше, чтобы отразить это. – dan4291
Я бы ожидал увидеть HTTPS не HTTP в URL-адресе, если вы правильно настроили конечную точку. – LoekD