Пакет служб SSIS не будет выполняться при вызове
У меня есть пакет служб SSIS 2005, который я вызываю в службе, созданной в VS 2005. Пакет не будет работать. Назначение пакета - проанализировать файл и поместить данные в "таблицу загрузки".
Пакет прекрасно работает сам по себе, но не запускается вообще при программном исполнении - когда я перебираю код. Средство просмотра событий указывает, что пакет запущен, но затем он указывает, что произошел сбой. Я не получаю больше информации, чем это.
Это не исключение. Это просто возвращает "Отказ". Я пытался выполнить для разных баз данных - тот же результат. Файл, который он анализирует, действителен, потому что он работает нормально, когда запускается сам по себе.
Единственное, о чем я могу думать, это то, что у меня возникли некоторые проблемы с разрешениями пользователей, но я понятия не имею, что делать с этой проблемой. У кого-нибудь есть какие-либо идеи?
5 ответов
Похоже, проблема с разрешениями. Убедитесь, что процесс, с которым он работает, имеет те же разрешения, что и учетная запись, которую вы используете для интерактивного запуска.
Без дополнительной информации сложно сказать, но это звучит как проблема с разрешениями.
Когда он запускается из кода, имеет ли пользователь или учетную запись, под которой выполняется код, соответствующие разрешения?
Например, если вы запускаете его вручную, вы, скорее всего, используете свои собственные учетные данные. Как разработчик, я бы предположил, что у вас есть права администратора, поэтому вы можете выполнить задачу.
Однако при запуске из программы вам необходимо знать, под какой учетной записью запускается программа. Это Asp.Net? Пользователь по умолчанию - Сетевая служба. Это запланированная задача выполняется под учетной записью локальной системы по умолчанию? Вам нужно изменить учетную запись, под которой он работает, или предоставить разрешения для БД соответствующим образом.
Какой уровень защиты пакетов вы использовали при загрузке из Studio в Integration Services? Мне больше всего повезло с последним в списке: положитесь на серверное хранилище и роли для контроля доступа.
В вашем пакете настроено ведение журнала ошибок? Это может помочь вам увидеть, в чем проблема.
Кроме того, имеет ли учетная запись для службы, выполняющей пакет, правильные права на каталог, в котором хранится файл, который нужно забрать, а не только правильные права в SQL Server? У нас была эта проблема раньше.
Прикрепили ли вы События к выполнению пакета? Вы называете посылку кодом? Какой метод вы используете?
Пожалуйста, проверьте Загрузка и запуск удаленного пакета...
Затем при отладке добавьте точку останова в строке Console.Write, где получает информацию об ошибке.
Надеюсь, поможет,
Arturo