C# 使用c在IIS中获取要在服务器上执行的程序#

C# 使用c在IIS中获取要在服务器上执行的程序#,c#,iis,process.start,C#,Iis,Process.start,我正在构建一个项目,允许用户将视频上传到服务器,服务器将以特定格式对视频进行编码。上传完成后,应该执行vbs脚本来完成我需要它完成的事情 不过,我在让脚本在服务器上运行时遇到了很大困难。当在服务器上调试VS2012时,我可以让它正常工作。但是,当我部署它并运行相同的代码时,它不起作用 我试着退一步,我试图让任何程序执行,但它不起作用。以下是我正在运行的代码,用于在上传文件后尝试打开记事本: //file is saved try {

我正在构建一个项目,允许用户将视频上传到服务器,服务器将以特定格式对视频进行编码。上传完成后,应该执行vbs脚本来完成我需要它完成的事情

不过,我在让脚本在服务器上运行时遇到了很大困难。当在服务器上调试VS2012时,我可以让它正常工作。但是,当我部署它并运行相同的代码时,它不起作用

我试着退一步,我试图让任何程序执行,但它不起作用。以下是我正在运行的代码,用于在上传文件后尝试打开记事本:

//file is saved
                try
                {
                    ProcessStartInfo psi = new ProcessStartInfo(@"C:\Windows\System32\notepad.exe");
                    Process proc = new Process();
                    proc.StartInfo = psi;
                    proc.StartInfo.FileName = @"C:\Windows\System32\notepad.exe";
                    bool didItStart = proc.Start();                    
                }
                catch(Exception ex)
                {                   
                    using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\test\log.txt"))
                    {
                        file.WriteLine(ex.InnerException + " " + ex);
                    }
                }
这不会引发任何错误,不会将任何内容写入日志文件。什么也没发生。我已经在谷歌上搜索了一段时间,发现并尝试了一些不起作用的事情,包括更改脚本所在文件夹的权限,但什么都没起作用


为什么不工作?

当我运行代码时,任务管理器显示有一个新的Notepad.exe进程作为“ASP.NET v4.0”用户运行。我看不到记事本的这个实例,因为它是在一个非交互式会话中运行的,与我自己的会话不同。并非所有应用程序都能在这样的会话中成功运行;未加载用户配置文件,这可能会导致应用程序出现不需要的问题


即使你能做到这一点,产生任意数量的进程也是一个值得怀疑的策略。如果您的任务是受计算限制的(就像这一个),那么一旦任务多于核心,您的性能就会受到影响。考虑重新设计解决方案以使用工作队列。

当我运行代码时,任务管理器显示有一个新的Notepad.exe进程作为“ASP.NET v4.0”用户运行。我看不到记事本的这个实例,因为它是在一个非交互式会话中运行的,与我自己的会话不同。并非所有应用程序都能在这样的会话中成功运行;未加载用户配置文件,这可能会导致应用程序出现不需要的问题

即使你能做到这一点,产生任意数量的进程也是一个值得怀疑的策略。如果您的任务是受计算限制的(就像这一个),那么一旦任务多于核心,您的性能就会受到影响。考虑重新设计您的解决方案以使用工作队列。

您是否尝试过此方法?您是否通读了此方法?在任务管理器中,是否看到创建了“notepad.exe”进程?这些程序将不会在您的用户会话中启动,因此您将看不到出现的窗口。您是否尝试过此方法?您是否阅读了此方法?在任务管理器中,是否看到创建了“notepad.exe”进程?这些程序不会在您的用户会话中启动,因此您不会看到窗口出现。