В SSIS [VS 2012], есть ли способ проверить, действительно ли URL-адрес действителен, прежде чем продолжить процесс загрузки? Если возможно, я хотел бы отделить список URL-адресов между допустимым и недействительным и загрузить только действительные URL-адреса. У меня уже есть пакет, созданный для загрузки списка URL-адресов, но я получаю ошибки в истории из недопустимых URL-адресов, и я хотел бы очистить эти ошибки, отфильтровывая недопустимые URL-адреса. Примеры были бы высоко оценены! Благодаря!SSIS - Проверьте, действительно ли URL-адрес
ответ
Я смог достичь вышеуказанного, используя компонент задачи сценария, а также следующую часть кода C#. Я передал свой URL через переменную и смог проверить, действительно ли это или недействительно. Затем я основывал свои ограничения на приоритет. Благодаря!
public void Main()
Dts.Variables["Found"].Value = UrlFound(Dts.Variables["URL1"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
private bool UrlFound(string url)
{
try
{
//Creating the HttpWebRequest
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
//Setting the Request method HEAD, you can also use GET too.
request.Method = "HEAD";
//Getting the Web Response.
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
//Returns TRUE if the Status code == 200
response.Close();
return (response.StatusCode == HttpStatusCode.OK);
}
catch
{
return false;
}
}
Мне нравится и использовал этот подход, и я +1 для него workign. Единственное, что я нашел, - это то, что использование компонента, а не задачи за пределами потока данных вызывает некорректные ответы от одного из серверов, с которыми я связывался, из-за количества обработанных мной записей. Я закончил тем, что перешел к задаче, а затем нарезал несколько результатов соединения, это была более высокая производительность и отсутствие блокировки от веб-серверов .... – Matt
Наилучший вариант - это сделать на языке программирования, java, C# и т. Д. Прочитайте каждый URL-адрес, затем проверьте, действительно ли он действителен, выдает все допустимые данные в чистый файл для загрузки ssis. Вы можете сделать это в задаче скрипта, но большая часть работы по-прежнему программируется, поэтому лучше оставить ее на языке программирования. – thotwielder
Что делает ваш пакет после загрузки URL-адресов? Как ваш пакет получает ошибки в истории из недопустимых URL-адресов? – thotwielder
Я использую URL-адреса в своем XML-источнике. Поэтому, когда источник попадает на URL-адрес, который не существует, он не работает с ошибкой «URL-адрес не смог прочитать XML-данные: (404) Not Found». У меня есть установка пакета, где, если он не работает, он обновит таблицу аудита, указав, что URL-адрес недействителен. Тем не менее, мой архитектор просматривает историю пакетов, и эти ошибки все еще присутствуют, хотя они были обработаны. Если бы я мог проверить, был ли URL-адрес действительным до загрузки, я мог бы избавиться от этих ошибок. –