【问题标题】:accesing local exe file from asp.net application从 asp.net 应用程序访问本地 exe 文件
【发布时间】:2010-04-21 11:31:46
【问题描述】:

我有一个 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)

但它抛出错误系统找不到指定的文件。 它是否在本地系统或其他任何东西上存在权限问题,任何帮助都会非常有用。 谢谢和问候

【问题讨论】:

  • 嗨,sansknwoledge。为了便于阅读,您可能希望在每个代码行的开头添加四个空格,以便按照您可能预期的方式格式化代码。

标签: asp.net process


【解决方案1】:

正如 Darin 和您提到的,exe 位于客户端上。相反,您的 VB.NET 代码在服务器上运行。它试图在服务器的c:\驱动器上找到exe文件。

如果您想访问客户端上的文件,您需要添加一些客户端代码。这会引发很多与安全相关的技术限制——我自己现在正在努力解决这些问题......

对于客户端代码,您可以考虑 MS Silverlight(它允许您在 VB.NET 中编写代码并做很多事情),或者您可以嵌入 VBScript 或 JavaScript 在您呈现的 HTML 页面中,只需 google 搜索“从 javascript 运行 exe”或“从 vbscript 运行 exe”并找到例如http://www.dotnetspider.com/resources/19547-Run-exe-file-Java-Script.aspx(不过,这只适用于 Internet Explorer)。

请始终牢记 ASP.NET 是一种服务器端技术。 VB.NET 代码被编译成在服务器上运行的程序集。它呈现(通常)一个 HTML 页面并将其发送到客户端,然后客户端上的浏览器呈现该页面,因此应该在客户端上运行的代码必须呈现到 HTML 页面中。

【讨论】:

  • 感谢您提供的信息,我可能会尝试使用 silverlight。
【解决方案2】:

该文件位于客户端计算机上。出于安全原因,您不能使用 ASP.NET 执行位于客户端计算机上的文件。

【讨论】:

    猜你喜欢
    • 2011-08-09
    • 2019-10-12
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    相关资源
    最近更新 更多