我正在尝试从Web应用程序安装.exe。当我在本地运行应用程序(从asp开发服务器)它正在正确安装。但是,当我在IIS上托管时,它无法正常工作。
我在asp.net page
中的Page_load方法上编写了这段代码//想在客户端计算机上安装Test.msi。
string filepath = Server.MapPath("~/NewFolder1/Test.msi");//NewFolder1 is on server
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('"+filepath+"')", true);
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
// startInfo.Arguments = "/K msiexec.exe /i \"" + @"D:\Datta\CrispDoxCompression.msi" + "\" /quite /qn";
startInfo.Arguments = "/K msiexec.exe /i \"" + filepath + "\" /qn";
startInfo.Verb = "runas";
process.StartInfo = startInfo;
process.Start();
答案 0 :(得分:1)
当我在本地运行应用程序时(从asp开发服务器),它正在正确安装
当然,因为那时服务器和客户端是同一台机器。您正在服务器上启动一个进程,这也恰好是客户端,但在生产中,情况并非如此。
如果您希望用户在其计算机上安装应用程序,请在您的网站上创建一个页面,向他们展示如何执行此操作,包括可以下载安装程序的链接。
您不能够从客户端计算机上的网站自动安装软件,更不用说静默了。
坐下来一分钟,想想如果你要求的东西实际上是可能的。除了浏览器(插件)漏洞,可能的日子早已不复存在。
如果您在受控环境中运行此站点,那么您可以让系统管理员为您域中的某些用户组部署此安装程序。