我有一个SSIS包,我在其中发出Web服务请求并检索一些数据。 API提供商要求出于安全原因提交客户证书以及请求。
如果我从VS Shell(甚至是VS控制台应用程序)运行程序包,我可以完全正常工作但是当我部署它并通过SQLAgent运行程序包,从SSMS解雇它时,我收到以下错误:
System.ServiceModel.Security.SecurityNegotiationException:无法 为权威人士建立SSL / TLS安全通道 ' mywebservice.com/endpoint:6185&#39 ;. ---> System.Net.WebException:The 请求已中止:无法创建SSL / TLS安全通道。 at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
在 System.ServiceModel.Channels.HttpChannelFactory' 1.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult的 结果)---内部异常堆栈跟踪结束--- at System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult结果)
在 System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult 结果)在 System.ServiceModel.Channels.ServiceChannel.EndCall(String action, 对象[]出,IAsyncResult结果)at System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator<> c__DisplayClass5' 1.b__4(IAsyncResult的 asyncResult)at System.Threading.Tasks.TaskFactory' 1.FromAsyncCoreLogic(IAsyncResult的 iar,Func 2 endFunction,Action' 1 endAction,Task' 1 promise,Boolean requiresSynchronization) ---从抛出异常的先前位置开始的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 ST_1ccd678422b8432a8ea14ce911c575f3.Myclass<> c__DisplayClass39< b__22> d__55.MoveNext()
我将作业运行为NT SERVICE\SQLAgent$Instance
,并且证书已放置在以下商店的本地计算机中:个人,受信任的根证书颁发机构和受信任的人员。这似乎不是问题,因为当我通过VS shell / Data Tools进行调试时,我可以使用它来处理任何这些问题。
我提前感谢任何帮助,谢谢!
答案 0 :(得分:0)
通过执行以下操作解决了这个问题:
sa
。希望这有助于其他人。