代码之家  ›  专栏  ›  技术社区  ›  JL. Hans Passant

从IIS web服务调用控制台应用程序,而不是加载DLL

  •  0
  • JL. Hans Passant  · 技术社区  · 14 年前

    我的iis服务正在调用控制台应用程序。此控制台应用程序引用了一个DLL。

    当我检查错误输出时,我得到:

    无法加载文件或程序集“file:///c:\ windows\system32\inetsrv\MyDll.dll”

    调用可执行文件的正确方法是:

    到目前为止我已经试过了:

     using (var p = new System.Diagnostics.Process())
                {
                    p.StartInfo.UseShellExecute = false;
                    p.StartInfo.RedirectStandardOutput = true;
                    p.StartInfo.RedirectStandardError = true;
                    p.StartInfo.RedirectStandardInput = true; 
                    p.StartInfo.FileName = downloaderPath;
                    p.Start();
                    string o = p.StandardOutput.ReadToEnd();
                    string i = p.StandardError.ReadToEnd(); 
                    p.WaitForExit();
                }
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Aliostad    14 年前

    添加此行:

    p.StartInfo.WorkingDirectory = Path.GetDirectoryName(downloaderPath);
    
        2
  •  1
  •   Gerrie Schenck    14 年前

    添加以下内容:

    p.StartInfo.WorkingDirectory = "c:\mydir\";
    

    如果不这样做,则可执行文件将从运行IIS的目录(c:\windows\system32\inetsrv)启动。

    推荐文章