0

我需要从我的 WCF REST Web 服务运行一个没有任何源代码(我只有二进制文件)的控制台应用程序。一旦我的服务启动并运行(本地主机,调试),我输入以下代码:

Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.FileName = strCommand;
p.StartInfo.Arguments = strCommandParameters;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();

找到了我的.exe文件,但没有任何反应。我在这段代码之后放了一个断点,它停在那里,所以代码被执行了。无论命令参数发生什么,控制台应用程序都应该在其目录中至少生成一个log.txt文件,但它没有。有任何想法吗?

编辑:正在工作......唯一的区别是log.txt文件是在正在运行的 Web 应用程序的调试目录中生成的,而不是在控制台应用程序的目录中生成的。因此输出文件的相对路径是相对于服务器 Web 应用程序的。

4

1 回答 1

0

我猜您是在 IIS 中托管 WCF 服务,并且控制台应用程序是使用没有足够权限的 AppPool 凭据启动的。您可以尝试使用ProcessMonitor来监控 Service/ConsoleApp 并检查拒绝访问的消息

于 2012-08-10T09:17:18.010 回答