日期:2014-05-16  浏览次数:20415 次

.net调用.exe文件,win2003iis使用不成功
.通过点击客户端按钮打开服务器端的某个应用程序。
问题描述:在asp.net页面中有个按钮,双击按钮添加事件,打开一个应用程序,代码:

                  Process process = new Process();
                  process.StartInfo.FileName = "e:\web\wkhtmltopdf.exe";
                  process.StartInfo.Arguments = "e:\web\TestPDF.htm e:\web\TestPDF.pdf";
                  process.Start();

通过vs2010编译后的网页是可以运行的,将网站发布到本地iis上后,在另一台机器上访问也运行成功
,但是将网站发布到win2003虚拟机的IIS上,运行不成功。
已做过的解决思路:
1.设置权限。
2.修改mime的允许
3.iis admin服务与桌面交互。
4.iis的local system。
5.设置framework 2.0/4.0下config/machine.config
还有什么情况没想到的?  
------解决方案--------------------
确认一下服务器上地址是否正确,改为Server.MapPath获取路径试试
------解决方案--------------------
在全新安装的系统上先测试。
------解决方案--------------------
应该是服务器的路径问题,服务器上的硬盘目录下有你要调用的这个程序吗,
服务器上存在这个文件吗。   e:\web\wkhtmltopdf.exe
------解决方案--------------------
首先 使用asp.net代码 是可以打开服务器中的进程,,但是我们不推荐,因为需要很多权限问题..

所以 要实现东西 肯定有别的方式来实现.而不是 单独启动一个exe

看样子 你是需要导出pdf..为什么不去搜索下 看看有没有相关的类库,..这样对你现在的开发以及以后都有好处的..

至于你这个问题 我猜想的可能性应该是你说的虚拟IIS或者是虚拟机..权限不够吧

正常的服务器启动exe只给exe一个everyone就行了 根本就不需要其他的
------解决方案--------------------
把网站 目录,以及那个exe 所在目录 对应的user 权限 全部设成完成控制试试呢
------解决方案--------------------
string wkhtmltopdfPath = HttpContext.Current.Server.MapPath(@"wkhtmltopdf\wkhtmltopdf.exe");
                if (!File.Exists(wkhtmltopdfPath))
                {
                    throw new Exception(String.Format("File '{0}' not found. Check if wkhtmltopdf application is installed.", wkhtmltopdfPath));
                }

                ProcessStartInfo si;
                StringBuilder paramsBuilder = new StringBuilder();
                paramsBuilder.Append("--page-size A4 ");
                paramsBuilder.AppendFormat("\"{0}\" \"{1}\"", "-", fileNameWithOutExtention);

                si = new ProcessStartInfo();
                si.CreateNoWindow = true;
                si.FileName = wkhtmltopdfPath;