【问题标题】:Running .EXE from MVC从 MVC 运行 .EXE
【发布时间】:2013-03-08 01:51:28
【问题描述】:

我的代码在本地工作,但在我部署到我的网络服务器时却不行。当试图访问wkhtmltopdf.exe 文件时,它会显示“Permission Denied”。我正在使用Codaxy Wrapper

WkHtmlToPdfPath = HttpContext.Current.Server.MapPath(@"~/wkhtmltopdf/wkhtmltopdf.exe"),

我可以将其更改为使用 DLL 或其他东西吗?我怎样才能使这项工作在服务器上像在本地工作一样工作?

【问题讨论】:

  • 检查this SO link
  • 这闻起来像 UAC 甚至是通用权限的东西。
  • 您是否尝试添加网络服务用户并赋予其完全控制权?
  • 让您的网络服务器启动一个新进程绝不是一个好主意。
  • 复制 dan radu 建议的一个。请注意,链接的答案还涵盖了 Dan-o 带来的安全问题。

标签: c# asp.net-mvc asp.net-mvc-4 exe


【解决方案1】:

您需要将 .exe 文件的执行访问权限授予 IIS 将用来访问该文件的用户,很可能是应用程序池标识或 IIS 6 中的 IIS_WPG 用户。

【讨论】:

  • 如何授予用户访问权限?这是通过 VS 2010 还是我的 Web 控制面板完成的?我在共享服务器上。感谢您的帮助。
  • 这确实解决了问题。但是,我有一个新问题,如果需要的话,我会提出一个新问题......谢谢! (Value cannot be null. Parameter name: fileContents)
  • 回复“如何授予用户访问权限?这是通过 VS 2010 还是我的 Web 控制面板完成的?我在共享服务器上。感谢您的帮助。- user1477388 2 天前”您需要在文件系统上分配权限。例如如果文件位于 C:\Program Files\7-Zip\7z.exe 您需要将 Windows 资源管理器导航到 c:\Program Files\7-Zip\ 文件夹,右键单击 7z.exe 文件并调整添加 iis 应用程序池身份用户的安全设置。
  • 抱歉,回复超慢。授予对 .exe 的访问权限是在 Windows 资源管理器中完成的。右键单击.exe,--> 属性--> 安全性。
  • 我会说任何特权提升都会产生潜在的安全问题。但是,我们必须至少发布最低限度的 ACL,否则我们的应用程序将收到拒绝访问类型错误。要运行 .exe,需要执行权限。如果不需要,写权限。但是,.exe 本身可能正在执行写入操作,即使这样,.exe 写入的目录也需要写入权限。
猜你喜欢
  • 2018-02-09
  • 2015-09-30
  • 2011-03-10
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
  • 2011-01-06
相关资源
最近更新 更多