我有一个Intranet asp.net应用程序,连接到它的所有客户端在其本地磁盘中都有一个特定的.exe文件,现在我想从内部网服务器中托管的.net应用程序执行.exe文件。我用这段代码来做那件事
Dim psi As New System.Diagnostics.ProcessStartInfo()
psi.WorkingDirectory = "C:\\"
psi.FileName = "file:///c:/Project1.exe"
psi.Arguments = cTimeMaster.APQPID
psi.UseShellExecute = False
System.Diagnostics.Process.Start(psi)
但它抛出一个错误,系统无法找到指定的文件。 如果它在本地系统或其他任何事情上有权限问题,任何帮助都会受到极大关注。 谢谢和问候
答案 0 :(得分:2)
该文件位于客户端计算机上。出于安全原因,您无法使用ASP.NET执行位于客户端计算机上的文件。
答案 1 :(得分:2)
正如Darin和你提到的那样,exe就在于客户端。相比之下,您的VB.NET代码在服务器上运行。它试图在服务器的 c:\驱动器上找到exe文件。
如果要访问客户端上的文件,则需要添加一些客户端代码。这引起了很多与安全相关的技术限制 - 我现在正在努力解决这些问题......
对于客户端代码,您可以考虑 MS Silverlight (允许您在VB.NET中编写代码并做很多事情),或者您可以嵌入 VBScript或您呈现的HTML页面中的JavaScript ,只需谷歌“从javascript运行exe”或“从vbscript运行exe”并找到例如http://www.dotnetspider.com/resources/19547-Run-exe-file-Java-Script.aspx(但是,这仅适用于Internet Explorer)。
始终牢记ASP.NET是一种服务器端技术。 VB.NET代码被编译成在服务器上运行的程序集。它(通常)呈现一个HTML页面并将其发送到客户端,然后客户端上的浏览器显示该页面,因此应该在客户端上运行的代码必须呈现在HTML页面中。