.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;