【问题标题】:Starting a new process in a asp.net web service在 asp.net Web 服务中启动新进程
【发布时间】:2010-04-13 20:30:59
【问题描述】:

我有以下代码:

 public void BeginConvert(object data)
 {
 ConverterData cObject = (ConverterData)data;
 string argument = string.Format("-i \"{0}\" -b {1} \"{2}\"", cObject.Source,    compression, cObject.Destiny);

 Process converterProcess = new Process();
 converterProcess.StartInfo.FileName = ffPath;
 converterProcess.StartInfo.Arguments = argument;
 converterProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
 converterProcess.Start();
 converterProcess.WaitForExit();
 }

我在 web 服务中使用它,我在一个新线程中启动它,它返回退出代码 1(错误,我正在尝试使用 ffmpeg 库进行视频转换),我模拟 ASP.NET 使用本地帐户具有读取和写入文件的权限,当我在运行或调试的机器上运行它时,它可以工作,但知道 Web 服务正在 IIS 中运行。有人可以帮我吗?

【问题讨论】:

  • 在事件查看器中注册没有问题,convertProcess 只是返回了退出代码 1(就像我之前说的)但这并不代表要记录的异常,我已经做了一些测试,看看是否当我调用它时,应用程序在文件夹中,一切正常,就像你们一样,我认为一定是权限问题,但我冒充 asp.net 使用管理帐户进行测试,所以我假设它的所有操作都在运行该帐户

标签: asp.net iis web-services


【解决方案1】:

我可以几乎 100% 肯定地说这是一个权限问题。你是如何进行模拟的?是否在服务器上配置了相同的用户名/密码?

当然另一种可能是 StartInfo.FileName 中的目标可执行文件不在正确的位置。

检查事件查看器是否有未处理的异常,您可能会获得更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多