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

时间:2010-11-16 13:08:20

标签: web-services iis shellexecute

我的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 个答案:

答案 0 :(得分:1)

添加以下行:

p.StartInfo.WorkingDirectory = Path.GetDirectoryName(downloaderPath);

答案 1 :(得分:1)

添加:

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

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