我有一个intranet asp.net应用程序,连接到它的所有客户端在其本地磁盘中都有一个特定的.exe文件,现在我想从intranet服务器上驻留的.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)
但是它抛出了一个系统找不到指定文件的错误。它是在本地系统上有权限问题,还是其他任何事情,任何帮助都会得到极大的重视。感谢并致以问候
发布于 2010-04-26 12:15:48
正如Darin和您所提到的,exe取决于客户端。相比之下,您的VB.NET代码在服务器上运行。它会尝试在服务器的c:\驱动器中查找exe文件。
如果您想要访问客户端上的文件,则需要添加一些客户端代码。这导致了许多与安全相关的和技术上的限制--我现在自己也在努力解决这些问题……
对于客户端代码,你可以考虑 (它允许你用VB.NET编写代码,做很多事情),或者你可以在你呈现的HTML页面中嵌入一个VBScript或JavaScript,只需在谷歌中搜索“从javascript运行可执行文件”或“从vbscript运行可执行文件”,然后找到例如http://www.dotnetspider.com/resources/19547-Run-exe-file-Java-Script.aspx (然而,这只适用于Internet Explorer)。
请始终记住,ASP.NET是一种服务器端技术。VB.NET代码被编译成在服务器上运行的程序集。它呈现(通常) HTML页面并将其发送到客户端,然后客户端上的浏览器呈现该页面,因此应该在客户端上运行的代码必须呈现在HTML页面中。
发布于 2010-04-21 11:36:55
该文件位于客户端计算机上。出于安全原因,您无法使用ASP.NET执行位于客户端计算机上的文件。
https://stackoverflow.com/questions/2682449
复制