[编辑]我的错误-显示错误所在的行。
我不是SQL Server开发人员,也不是.net开发人员,所以请多多包涵。
在SSIS(Visual Studio 2017)中使用脚本任务使用第三方的Rest API,并出现以下错误
请求被中止,请求被取消。
这是我正在使用的代码
string responseMessage = null;
string pushResponse = null;
try
{
WebRequest req = WebRequest.Create(post_url);
req.Method = "POST";
req.ContentType = "application/json";
req.Timeout = 600000;
req.Credentials = new NetworkCredential(api_username, api_password);
using (var streamWriter = new StreamWriter(req.GetRequestStream()))
{
string json = "{\r\n\"carCountryCode\": \"" + api_countryCode + "\",\r\n\"carLicenseNumber\": \"" + carLicenseNumber + "\",\r\n\"client\": \"" + api_client + "\"\r\n}";
streamWriter.Write(json);
}
if (req != null)
{
var response = req.GetResponse() as HttpWebResponse;
if (response.StatusCode == HttpStatusCode.OK)
{
System.IO.Stream responseStream = response.GetResponseStream();
if (responseStream != null)
{
var reader = new System.IO.StreamReader(responseStream);
responseMessage = reader.ReadToEnd();
pushResponse = responseMessage;
reader.Close();
responseStream.Close();
response.Close();
}
responseStream.Close();
response.Close();
}
else
{
responseMessage = response.StatusDescription;
//MessageBox.Show("Error:" + responseMessage);
}
//MessageBox.Show("Success: " + pushResponse);
response.Close();
}
}
//catch (Exception e)
catch (Exception ex)
{
Dts.Events.FireError(0, "ERROR", ex.Message, null, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
错误是在行上生成的-[编辑]我的错误,之前显示的是错误的行
var response = req.GetResponse() as HttpWebResponse;
这一直持续到今天早上。 我已经检查过,该服务已启动并正在运行。
答案 0 :(得分:0)
我们需要做的是编辑此文件并覆盖继承的GetWebRequest方法。覆盖方法应如下所示(用C#编写的示例):
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest webRequest = (HttpWebRequest)base.GetWebRequest(uri);
webRequest.KeepAlive = false;
webRequest.ProtocolVersion = HttpVersion.Version10;
return webRequest;
}
请记住,当您执行“更新Web参考”命令时,VS将重新生成文件,并且您的更改将丢失。因此,您将需要在每次更新后再次覆盖该方法。
答案 1 :(得分:0)
可能是一个愚蠢的问题,但是如果它正在运行并且突然停止...您是否检查了该服务是否仍然可用?使用Postman进行检查。