我有一個服務在Azure(不是本地)的服務結構集羣中託管,我嘗試使用本地計算機上的控制檯應用程序調用其中的方法。使用WCF進行通信,我的應用程序在特定端口上設置了HTTPS端點,併爲Azure門戶中的端口配置了負載平衡規則。羣集有6個節點,應用程序是在羣集上部署的唯一節點。使用WCF HTTPS端點從控制檯應用程序調用服務結構服務
已遵循GitHub上的ServiceFabric.WcfCalc(link),它在使用HTTP端點的本地羣集上工作,但在部署後無法使用HTTPS端點調用服務上的方法。我需要做些什麼才能使它工作?已嘗試遵循示例here,但不知道如何將此配置用於HTTPS,並使用多個節點上的服務供控制檯應用程序訪問。
在此先感謝。
編輯這是我用來調用服務方法的客戶端代碼。我在這裏將結構:/ 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調用,它調用該方法在我的服務織物的服務。該應用程序不會拋出任何異常,並且不會返回到Visual Studio中的調試器。
當您嘗試在集羣中部署的服務上嘗試調用該方法時,您看到什麼錯誤或問題?超時或其他東西? – yoape
我的代碼中沒有引發異常,儘管我在Service Fabric集羣資源管理器中看到以下警告: - 「HTTP無法註冊URL http:// +:443/26c710ea-38b9-4416-9d70-c1710e698521/8d259277- ed49-4e11-b7ec-fac80075297e-131314658022522000 /。另一個應用程序已經使用HTTP.SYS註冊了這個URL。「當我從本地機器上的控制檯應用程序調用服務方法時,會發生這種情況。上面編輯的問題反映了這一點。 – dan4291
如果您正確配置了端點,我希望在url中看到HTTPS不是HTTP。 – LoekD