.net调用.exe文件,win2003iis使用不成功

神清如梦 2014-04-23 03:29:55
.通过点击客户端按钮打开服务器端的某个应用程序。
问题描述:在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
还有什么情况没想到的?
...全文
246 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wrzs 2014-12-11
  • 打赏
  • 举报
回复
群主好厉害啊。给我点分呗。
wrzs 2014-12-11
  • 打赏
  • 举报
回复
群主好厉害啊。
神清如梦 2014-04-23
  • 打赏
  • 举报
回复
感谢大家,解决了 在iis主目录->执行权限配置按钮->映射->应用程序扩展->添加 选择要执行的exe文件 扩展名输入.exe 就成了
神清如梦 2014-04-23
  • 打赏
  • 举报
回复
引用 10 楼 SomethingJack 的回复:
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;
                si.Arguments = paramsBuilder.ToString();
                si.UseShellExecute = false;
                si.RedirectStandardError = true;
                si.RedirectStandardInput = true;
不是代码问题,代码可以再本地运行成功
SomethingJack 2014-04-23
  • 打赏
  • 举报
回复
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;
                si.Arguments = paramsBuilder.ToString();
                si.UseShellExecute = false;
                si.RedirectStandardError = true;
                si.RedirectStandardInput = true;
神清如梦 2014-04-23
  • 打赏
  • 举报
回复
引用 7 楼 chz415767975 的回复:
把网站 目录,以及那个exe 所在目录 对应的user 权限 全部设成完成控制试试呢
从网站根目录到所有子文件的权限都是everyone 而且还有system,network service,administrator
神清如梦 2014-04-23
  • 打赏
  • 举报
回复
引用 5 楼 huangjin118 的回复:
应该是服务器的路径问题,服务器上的硬盘目录下有你要调用的这个程序吗, 服务器上存在这个文件吗。 e:\web\wkhtmltopdf.exe
文件肯定存在
霜寒月冷 2014-04-23
  • 打赏
  • 举报
回复
把网站 目录,以及那个exe 所在目录 对应的user 权限 全部设成完成控制试试呢
by_封爱 2014-04-23
  • 打赏
  • 举报
回复
首先 使用asp.net代码 是可以打开服务器中的进程,,但是我们不推荐,因为需要很多权限问题.. 所以 要实现东西 肯定有别的方式来实现.而不是 单独启动一个exe 看样子 你是需要导出pdf..为什么不去搜索下 看看有没有相关的类库,..这样对你现在的开发以及以后都有好处的.. 至于你这个问题 我猜想的可能性应该是你说的虚拟IIS或者是虚拟机..权限不够吧 正常的服务器启动exe只给exe一个everyone就行了 根本就不需要其他的
huangjin118 2014-04-23
  • 打赏
  • 举报
回复
应该是服务器的路径问题,服务器上的硬盘目录下有你要调用的这个程序吗, 服务器上存在这个文件吗。 e:\web\wkhtmltopdf.exe
神清如梦 2014-04-23
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
在全新安装的系统上先测试。
虚拟机是最新的。。。。只装了.net framework 2.0/4.0 ;SQL Server 2005
神清如梦 2014-04-23
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
确认一下服务器上地址是否正确,改为Server.MapPath获取路径试试
代码里的地址是Server.MapPath获取的,将路径输出到一个文档里拷来的
threenewbee 2014-04-23
  • 打赏
  • 举报
回复
在全新安装的系统上先测试。
bdmh 2014-04-23
  • 打赏
  • 举报
回复
确认一下服务器上地址是否正确,改为Server.MapPath获取路径试试

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧