Permet de prendre le scénario, j'ai développé l'application web (ASP.NET MVC) qui montre la liste des fichiers .xml
et nous sélectionnons deux .xml
fichiers de comparaison et d'utiliser un utilitaire de comparaison comme Beyond Compare 3.Processus travailleur ne fonctionne pas sur IIS 7
Fondamentalement, j'ai un fichier Scrapt (Beyond Compare 3 Script) qui fonctionne sur System.Diagnostic.Process
et génère des fichiers de rapport de différence par rapport au script. Je veux utiliser le script dans un processus qui montre un rapport de différence généré à l'exécution. Lorsque j'exécute l'application à partir de Visual Studio, elle fonctionne parfaitement et affiche le fichier de différences attendues, mais lorsque je déploie cette application sur mon serveur Web IIS, elle ne génère pas le fichier de différences et affiche simplement le fichier d'entrée comme fichier de sortie. Voici la méthode qui démarre le processus et génère le fichier de résultat Au-delà de la comparaison en tant que fichier de sortie. Mais le code suivant est en cours d'exécution sur le serveur de développement Visual Studio mais il ne fonctionne pas sur IIS (déploiement de site Web sur le serveur IIS).
public string GenerateSortedXMLFile(string inputfilepath)
{
string outputfile, inputfile, BCompare, Script;
inputfile = inputfilepath;
outputfile = ConfigurationManager.AppSettings["MFxmlSortFilePath"];
outputfile = outputfile + System.Guid.NewGuid().ToString() + ".txt";
BCompare = ConfigurationManager.AppSettings["BCompareExe"];
Script = ConfigurationManager.AppSettings["Script"];
Process p = new Process
{
StartInfo =
{
FileName = "\"" + BCompare + "\"",
Arguments = " " + "\"" + "@" + Script + "\"" + " " + "\"" + inputfile + "\"" + " " + "\"" + outputfile + "\" /grant BUILTIN\\Users:IIS_IUSRS"
}
};
p.Start();
p.WaitForExit();
p.Close();
return outputfile;
}