gpt4 book ai didi

wcf - Azure 计划程序 SSL 证书错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:47 25 4
gpt4 key购买 nike

我有一个在 azure 中运行的 WCF 云服务,我从 .NET 客户端连接到该服务。这一切都运行良好,我已经通过启用 SSL(使用自签名证书)和使用事件目录授权来实现安全性。

但是,我有许多使用 azure 调度程序的计划作业,并且这些作业调用云服务中的方法,但我无法将计划作业设置为 HTTPS 作业。它们作为 HTTP 作业工作得很好,但是当我将其更改为 HTTPS 时,我收到以下错误:

“Http 操作 - 请求主机“.cloudapp.net”失败:TrustFailure 底层连接已关闭:无法建立 SSL/TLS 安全通道的信任关系。”

我尝试通过将以下代码添加到 WCF Web 角色的 OnStart 方法来接受所有证书:

 ServicePointManager.ServerCertificateValidationCallback
= delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
};

但是回调永远不会被调用

所以我假设我必须以某种方式将客户端证书身份验证添加到调度程序作业中?但我不知道如何做。

我正在通过 Microsoft.WindowsAzure.Management.Scheduler Api 创建作业,例如:

var action = new JobAction();
action.Type = JobActionType.Https;
action.Request = new JobHttpRequest();
action.Request.Method = "POST";
action.Request.Uri = new Uri(serviceURI);
action.Request.Body = soap;

action.RetryPolicy = new RetryPolicy()
{
RetryType = RetryType.None,
RetryCount = null
};
action.Request.Headers = new Dictionary<string, string>()
{
{ "Content-Type", "text/xml" },
{ "SOAPAction", "\"http://tempuri.org/" + serviceInterfaceName + "/" + methodName + "\"" }
};

var result = schedulerClient.Jobs.CreateOrUpdate(jobName, new JobCreateOrUpdateParameters()
{
action = action,
StartTime = startTime,
Recurrence = new JobRecurrence()
{
Frequency = frequency,
Interval = interval
}
});

我看到在 JobAction 类中,Request 对象有一个名为 Authentication 的属性,我想也许我可能需要使用它,但我找不到有关如何使用它的文档?

或者,我可以通过 powershell 或 azure 门户界面创建计划作业,如果有人可以告诉我如何通过这些方法之一成功创建 HTTPS 计划作业?

非常感谢,凯莉

最佳答案

调度程序作业失败,因为它无法信任此端点。您需要对来自 Scheduler 的 HTTPS 调用使用受信任的证书。

关于wcf - Azure 计划程序 SSL 证书错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31576703/

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