2015-11-12 3 views
1

Я новичок в ColdFusion, поэтому, пожалуйста, простите меня, если я задаю очевидный вопрос.(Coldfusion MX) Почему cfexecute возвращает [пустую строку]?

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

<cfexecute name="netstat" variable="result" timeout=10 /> 
<cfdump var="#result#"> 

Приведенный выше код возврата [пустая строка], или если я пытаюсь записать его в файл он просто создает пустой файл.

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

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

Также важно отметить: код работает иногда, ничего не меняя.

Возможно ли, что существует ограничение на количество программ, которые могут выполнять ColdFusion?

Спасибо за помощь!

У меня было слишком много исполнений, которые автоматически не прекращались. Это не позволило ColdFusion открыть новый.

+3

атрибут 'name'' cfexecute' ожидает абсолютный путь. [Docs] (http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d56.html): 'Абсолютный путь для приложения для выполнения.' Если 'netstat' - это переменная, то оберните ее фунт ('# '). – Beginner

+1

Почему кто-то голосовал, чтобы закрыть это как «вне темы»? Проблема четко определена, вопрос включает в себя автономный опыт воспроизведения, а также фактические и ожидаемые результаты. – Leigh

ответ

0

Вопрос связан с низким значением timeout. Выполнение команды netstat требует времени. Попробуйте увеличить его до 100 или более. Я тоже испытал такую ​​же проблему. Увеличение значения тайм-аута решает проблему.

Примечание: поскольку @beginner предложил вам предоставить Абсолютный путь исполняемого файла для выполнения, если путь не добавлен к вашей переменной окружения или папкам приложений по умолчанию (где os ищет файлы по умолчанию). В случае, если путь доступен в переменных окружения или папках приложений, вы можете просто указать имя.

+0

@Beginner Я обновил свой код к следующему: По-прежнему имеет ту же проблему. –

+0

Что происходит, когда вы пытаетесь использовать код? Поскольку исполняемый файл находится в системной папке, вы можете просто передать его имя. – Pankaj

+0

Я пробовал с абсолютным путем и просто netstat, но в обоих случаях он возвращает только [пустая строка]. Чтобы убедиться, что он находит файл, я сменил его на вымышленное имя, и в этом случае он создал ошибку. Похоже, что он находит файл, но по какой-то причине он его не выполняет. (Я предполагаю, что это не выполняется, потому что даже если я запустил ping, который должен выполнить не менее пары секунд для выполнения, он всегда отвечает на [пустую строку] сразу). –