Исполняемый файл IIS не выполняется - PullRequest
0 голосов
/ 15 декабря 2010

Я искал проблему в течение недели и не смог ее выяснить, и я отчаялся из-за исправления.

На клиентском сайте у нас есть дваокружение: UAT и PROD.UAT работает отлично (пожалуйста, имейте это в виду).Сейчас мы пытаемся развернуть решение в PROD, но некоторые его части не работают.

Мы разработали приложение asp.net, которое мы предоставляем клиентам, чтобы они могли вызывать пакеты служб SSIS (существуетпара выпадающих меню, которые они сначала выбирают, затем нажимают кнопку с именем «invoke»).Когда пользователь нажимает кнопку Invoke, вызывается командный файл с именем InvokeSSIS.bat, который собирает вызов командной строки для dtexec с соответствующими параметрами.

У меня проблема с конкретным пакетом, который отвечает завызов исполняемого файла, который генерирует электронную таблицу, которую я буду импортировать в мою систему.

Исполняемый файл находится на подключенном диске H: \.

Я изменил пакетный файл InvokeSSIS.bat для захватакоманда, которую генерирует пакетный файл.Если я выполню эту команду из командной строки, она отлично работает.Из веб-приложения Invoker он выполняет пакет, но задачи, отвечающие за вызов исполняемого файла, не выполняются, поскольку весь пакет занимает всего 1 секунду (в то время как это занимает около минуты).

Исполняемый файл DOESесть графический интерфейс, но он не является интерактивным.Это связано с тем, что при вызове графического интерфейса пользователя с конкретными параметрами он автоматически запускается в пакетном режиме и выполняет макрос, используемый для создания нужной электронной таблицы.

Я знаю, что это нормально, поскольку он работает на сервере UAT И работаетиз командной строки!

Я проверил разрешения для исполняемого файла (если щелкнуть правой кнопкой мыши исполняемый файл и щелкнуть свойства.) Я предоставил полный доступ к исполняемому файлу тому же пользователю, который указан на вкладке удостоверенияпул приложений, которым я пользуюсь.

Может кто-нибудь помочь мне?Как я уже сказал, я умираю здесь!

Пожалуйста, дайте мне знать, если у вас есть какие-либо идеи или какая другая информация вам нужна.

Среда (UAT и PROD) ОС: Windows Server 2003
IIS 6
asp.net 2.0
SQL Server 2008

Спасибо!

Стив

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Я согласен с user544284, что это, по крайней мере, отчасти проблема сопоставления.Я на минуту проигнорирую полное безумие, когда веб-приложение вызывает пакетный файл, чтобы запустить исполняемый файл, который находится на удаленном сетевом диске, с помощью сопоставления букв дисков.

Скорее всего, в поле UAT есть что-то, что отображает ту букву диска, по которой Prod отсутствует.

Единственная другая возможность - нарушение безопасности.Запуск .exe с сетевого диска обычно не одобряется.Есть ли в двух средах одинаковые версии окон?Они настроены одинаково в отношении UAC?Любые различия здесь будут важны.

Что вызывает интересную мысль.Интересно, кто-то вошел в систему на сервере UAT, используя те же учетные данные, которые использует пул приложений, и добавил IP-адрес компьютера, на котором находится исполняемый файл, в список сайтов «Локальной интрасети» ... Или если они установили SSISна самом сервере UAT.

То, что ВЫ можете войти на сервер и запустить его в командной строке, ничего не значит.Вы должны выяснить, сопоставлена ​​ли вообще буква диска для пользователя, под которым работает веб-приложение, и есть ли у этого пользователя требуемые биты безопасности и будет ли локальная ОС разрешать это независимо.

Ладно,Я не могу игнорировать это: прическа - самое хорошее прилагательное, которое я могу придумать для этой "архитектуры".Сделайте себе одолжение и вернитесь к чертежной доске на этом.На нем написано слово «хрупкий», как вы уже нашли.Вместо того, чтобы создавать пакетный файл для вызова dtexec, просто сделайте это напрямую, например, this или this .

1 голос
/ 16 декабря 2010

Нельзя использовать подключенный диск с IIS.

Для доступа к файлам в других системах необходимо использовать синтаксис \\ servername.

...