Проблемы с выполнением команд P4 из NAnt через веб-приложение на IIS 6 - PullRequest
1 голос
/ 02 апреля 2010

У меня возникают странные проблемы с правами доступа к Perforce при запуске из сценария NAnt, но только если этот сценарий NAnt запускается из сценария PHP. Надеюсь, кто-то может просветить меня о том, что происходит!

У меня работает PHP-скрипт в пуле приложений, настроенный для использования учетной записи пользователя build.user. Сценарий в настоящее время выглядит так:

<?php
echo exec("whoami");
exec("c:\\windows\\system32\\cmd.exe /c d:\\nant\\bin\\Nant.exe -v /f:d:\\build\\test.build test.build.target > d:\\build\\test.build.log");
?>

При запуске в браузере он выплевывает domain\build.user. Пока все хорошо.

Сценарий NAnt выглядит следующим образом:

<?xml version="1.0"?>
<project name="test" basedir=".">
    <target name="test.build.target">
        <echo message="Local appdata path: ${environment::get-folder-path('LocalApplicationData')}" />
        <exec program="whoami.exe" />

        <echo message="==========================================================================================" />
        <exec program="c:\program files\perforce\p4.exe" failonerror="false">
            <arg value="set" />
        </exec>

        <echo message="==========================================================================================" />
        <exec program="c:\program files\perforce\p4.exe" failonerror="false">
            <arg value="where" />
            <arg value="//depot1/folder/file.ext" />
        </exec>
    </target>
</project>

И вывод соответствующего файла журнала:

[echo] Local appdata path: C:\Documents and Settings\Default User\Local Settings\Application Data
[exec] Starting 'whoami.exe ()' in 'd:\build'
[exec] domain\build.user
[echo] ==========================================================================================
[exec] Starting 'c:\program files\perforce\p4.exe (set)' in 'd:\build'
[exec] P4CLIENT=build_depot (set)
[exec] P4PASSWD=Password (set)
[exec] P4PORT=source01.domain.com:1666 (set)
[exec] P4USER=build.user (set)
[echo] ==========================================================================================
[exec] Starting 'c:\program files\perforce\p4.exe (where //depot1/folder/file.ext)' in 'd:\build'
[exec] Perforce password (P4PASSWD) invalid or unset.
[exec] d:\build\test.build(13,4):
[exec] External Program Failed: c:\program files\perforce\p4.exe (return code was 1)

Итак, два моих главных вопроса:

  1. Почему локальный путь к appdata - это путь "Default User" вместо пути "build.user", если WhoAmI сообщает build.user как текущего пользователя?
  2. Почему P4 отвечает, что P4PASSWD недействителен / не установлен, если он явно действителен и установлен?

1 Ответ

0 голосов
/ 06 марта 2011

Существует ли рабочее пространство? Это плохая ошибка возврата со стороны Perforce, но если вы попытаетесь войти в систему, и вы даете ему имя рабочей области, которого не существует, он возвращает неверного пользователя / пароль.

...