Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SSIS脚本任务中使用客户端证书的Web服务调用导致SSL/TLS问题_C#_Ssl_Ssis - Fatal编程技术网

C# 在SSIS脚本任务中使用客户端证书的Web服务调用导致SSL/TLS问题

C# 在SSIS脚本任务中使用客户端证书的Web服务调用导致SSL/TLS问题,c#,ssl,ssis,C#,Ssl,Ssis,我有一个SSIS包,在其中我发出一个web服务请求并检索一些数据。出于安全原因,API提供程序要求在提交请求的同时提交客户端证书 如果我从VS Shell(甚至VS控制台应用程序)运行包,我可以让它工作得非常好,但是当我部署它并通过SQLAgent运行包,从SSMS启动它时,我会得到以下错误: System.ServiceModel.Security.SecurityNegotiationException:无法 为具有权限的SSL/TLS建立安全通道 “mywebservice.com/end

我有一个SSIS包,在其中我发出一个web服务请求并检索一些数据。出于安全原因,API提供程序要求在提交请求的同时提交客户端证书

如果我从VS Shell(甚至VS控制台应用程序)运行包,我可以让它工作得非常好,但是当我部署它并通过SQLAgent运行包,从SSMS启动它时,我会得到以下错误:

System.ServiceModel.Security.SecurityNegotiationException:无法 为具有权限的SSL/TLS建立安全通道 “mywebservice.com/endpoint:6185”。-->System.Net.WebException:异常 请求被中止:无法创建SSL/TLS安全通道。 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
在 System.ServiceModel.Channel.HttpChannelFactory'1.HttpRequestChannel.HttpChannelAsyncRequest.CompleteTresponse(IAsyncResult 结果)--内部异常堆栈跟踪的结束---at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult结果)
在 System.ServiceModel.Channel.ServiceChannel.SendAsyncResult.End(SendAsyncResult 结果)在 System.ServiceModel.Channel.ServiceChannel.EndCall(字符串操作, 对象[]输出,IAsyncResult结果)位于 System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator.c__DisplayClass5'1.b__4(IAsyncResult 异步结果)在 System.Threading.Tasks.TaskFactory'1.FromAsyncCoreLogic(IAsyncResult iar,Func'2 endFunction,操作'1 endAction,任务'1承诺,布尔值 要求(同步) ---来自引发异常的上一个位置的堆栈结束跟踪---在 System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()中 在 ST_1ccd678422b8432a8ea14ce911c575f3.Myclass.c__DisplayClass39.d__55.MoveNext()

我正在以
NT SERVICE\SQLAgent$Instance
的身份运行作业,证书已放置在本地计算机的以下存储区中:个人、受信任的根证书颁发机构和受信任的人员。但这似乎不是问题所在,因为当我通过VS shell/Data工具进行调试时,我可以让它处理其中的任何一个


我将感谢任何事先的帮助,谢谢

通过执行以下操作解决此问题:

  • 将作业所有者设置为
    sa
  • 在SQL Server代理-->代理-->SSIS包执行下创建了代理帐户,并将主体设置为我的SQL登录(域)帐户。还添加了主体下的SQLAgent阅读器、用户和操作员角色
  • 通过将SQL Server代理服务帐户更改为我的新代理帐户,更新了SSIS作业步骤
  • 希望这对其他人有帮助