+ -
当前位置:首页 → 问答吧 → 我写了个服务调用一个外部程序。在控制台测试情况下,能够看到被调用被调用的外部程序窗口,但在实际服务时窗口没有打开!

我写了个服务调用一个外部程序。在控制台测试情况下,能够看到被调用被调用的外部程序窗口,但在实际服务时窗口没有打开!

时间:2011-12-13

来源:互联网

怎么让窗口保持打开,或者确定我这个外部程序做的事情做完了。在日志文件里的确有,事情也的确是完成了!

可是当我部署到服务器上似乎就不行了。。。
 /n用时:00:00:02.3230242

2011-12-13 14:35:05,584 [WebQuote缓存服务!] INFO - 开始执行程序

2011-12-13 14:35:05,585 [WebQuote缓存服务!] INFO - 执行目录为D:\copyto187188.bat

2011-12-13 14:35:05,709 [WebQuote缓存服务!] INFO - 执行成功

2011-12-13 14:35:05,709 [WebQuote缓存服务!] INFO - 完成额外程序


我调用了一个bat文件。
这个bat执行和权限有关系吗?

C# code

try
                    {
                        LogHelper.Info("开始执行程序");
                        Process process = new Process();
                        process.StartInfo.FileName = RequestProvider.exeFile;
                        LogHelper.Info("执行目录为" + process.StartInfo.FileName);
                        bool result = process.Start();
                        LogHelper.Info(result ? "执行成功" : "执行失败");
                        //process.StartInfo.CreateNoWindow = true;
                        isRedo = false;
                        LogHelper.Info("完成额外程序");
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Error("额外程序出现问题", ex);
                    }

作者: mdsb100   发布时间: 2011-12-13

1是权限,asp.net是匿名帐户运行,没有执行bat的权限
2.路径问题,bat文件放在网站目录下

作者: net_lover   发布时间: 2011-12-13

问题是 bat无法访问映射的磁盘。
如何解决?
有服务器 188.
我把188映射到本机为 X盘。手工执行bat可以,但是用服务执行则不可以!

作者: mdsb100   发布时间: 2011-12-13