2010-04-02 13 views
1

Je rencontre des problèmes d'autorisations étranges avec Perforce lors de l'exécution à partir d'un script NAnt - mais seulement si ce script NAnt est lancé à partir d'un script PHP. J'espère que quelqu'un pourra m'éclairer sur ce qui se passe!Problèmes d'exécution des commandes P4 de NAnt via l'application Web sur IIS 6

J'ai un script PHP exécuté dans un pool d'applications configuré pour utiliser le compte utilisateur "build.user". Le script ressemble actuellement à ceci:

<?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"); 
?> 

Lorsqu'il est exécuté dans un navigateur, il crache sur domain\build.user. Jusqu'ici tout va bien.

Le script NAnt ressemble à ceci:

<?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> 

Et la sortie du fichier journal concerné:

[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) 

donc mes deux questions principales sont:

  1. Pourquoi la AppData locale chemin le chemin "utilisateur par défaut" au lieu du chemin "build.user", étant donné que WhoAmI signale build.user en tant qu'utilisateur actuel?
  2. Pourquoi P4 répond-il que P4PASSWD est invalide/désactivé quand il est clairement valide et réglé?

Répondre

0

L'espace de travail existe-t-il? C'est une erreur de retour de la part de Perforce, mais si vous essayez de vous connecter, et que vous lui donnez un nom d'espace de travail qui n'existe pas, il renvoie un mauvais utilisateur/pass.