【发布时间】:2011-10-31 02:31:45
【问题描述】:
让我们来看一个场景,我开发了一个 Web 应用程序 (ASP.NET MVC),它显示了 .xml 文件的列表,我们选择了两个 .xml 文件进行比较,并使用了像 Beyond Compare 3 这样的比较实用程序。
基本上,我有 Scrapt 文件(Beyond Compare 3 Script),它在 System.Diagnostic.Process 上运行,并针对脚本生成差异报告文件。我想在显示运行时生成的差异报告的进程中使用该脚本。当我从 Visual Studio 运行应用程序时,它运行完美并显示了预期的差异文件,但是当我在我的 IIS Web 服务器上部署此应用程序时,它不会生成差异文件,只是将输入文件显示为输出文件。
Following 是启动进程并生成 Beyond Compare 结果文件作为输出文件的方法。但以下代码在 Visual Studio 开发服务器上运行,但在 IIS 上不起作用(网站部署在 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;
}
【问题讨论】:
标签: c# asp.net-mvc iis-7 system.diagnostics beyondcompare3