.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
还有什么情况没想到的?
...全文
290 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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获取路径试试
4年前做虚拟主机,当时资金有限,没钱买现成的.所以就自己写了一套.主机没卖出去多少,留了一套系统..前两天突然发现,翻腾出来了..和大家共享一下,主要做技术讨论..
说明一下:
系统基于.net1.1+win2003+ServU+WinWebMail+sql2k...为了方便我把数据库导成access了..实现了在线查询域名,开通域名,在线开通虚拟主机,FTP的功能..现在开通域名就是和上游的域名注册商做接口.用tcp通讯..开通ftp就是操作数据库...开通iis就是用ds的命名空间还有文件系统的操作...其他的还有产品管理,用户管理,订单等等就不说了..
待完善的地方:由于没有时间,也懒得弄了.所有有几个地方没有写
1.由于当时1.1还不完善,2.0还没出,.net1.1不支持目录权限管理..所有建立目录时权限做得不完善..所以建立目录时权限没加上,用的随机生成目录名的解决方案
2.net调用com很麻烦...当时的ds还不支持iis里访问控制,就是设置ip那一项,只能调用com.所以这个也没做...winwebmail也用的com..所以也没实现email在线开通...

在线演示地址是:http://www.commonws.com
下载地址:
还有一个n层架构的代码,由于当时想重新写成n层的,由于懒.也没写完,也一起放上来吧:

(这里要说一下,本来,我的域名是www.closechina.com,注册时间较早,所以在35的一个代理下注册的,后来我自己弄了个代理,想转过来,可是35的代理要转移费用,150元..纯属乱收费,反映到35,他们维护代理商利益,不管,还跟我说,让我尽量去告他们.不要脸无耻的东西!..,我不想花冤枉钱,就等域名过期之后删除,然后再重新注册,没想到删除当天 被意大利的一家捣腾域名的公司抢注了..我注册4年的域名被抢了.还有其他一大堆二级域名和邮箱都不能用了..在这里强烈鄙视一下35及其代理,还有意大利人)

有任何问题,建议可以联系我,一起学习,一起进步..
qq 8341772
email closechina@163.com
blog http://heize.cnblogs.cn


版权所有!!只供学习,参考!!禁止用于商业用途!!!

62,248

社区成员

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

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

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

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