Asp.net 从intranet上的服务器启动程序

Asp.net 从intranet上的服务器启动程序,asp.net,Asp.net,好吧,我知道你通常不希望人们能够从服务器上执行程序,但这正是我想要做的。当我从本地客户机运行时(使用VS2010),如果程序安装在本地计算机上,我就可以执行该程序。如果我试图从服务器上运行它,就会出现“系统找不到文件”错误。以下是从本地客户端计算机运行时可以运行的代码: Protected Sub BeginTutorial(sender As Object, e As System.EventArgs) Handles Button1.Click Dim psi As New Proc

好吧,我知道你通常不希望人们能够从服务器上执行程序,但这正是我想要做的。当我从本地客户机运行时(使用VS2010),如果程序安装在本地计算机上,我就可以执行该程序。如果我试图从服务器上运行它,就会出现“系统找不到文件”错误。以下是从本地客户端计算机运行时可以运行的代码:

Protected Sub BeginTutorial(sender As Object, e As System.EventArgs) Handles Button1.Click
    Dim psi As New ProcessStartInfo()
    psi.FileName = "C:\Program Files\Savvy Training Tutorials\Word 2010\Savvy's Word 2010 Tutorial Menu.exe"
    psi.WorkingDirectory = IO.Path.GetDirectoryName(psi.FileName)
    Diagnostics.Process.Start(psi)
End Sub
我还在服务器上安装了这个程序,所以如果我更改文件路径,它会给我上面提到的“找不到文件”错误。我已经尝试将文件安装到服务器上的默认位置,或者安装在包含网站的目录中。以下是两个例子:

默认安装:

Protected Sub BeginTutorial(sender As Object, e As System.EventArgs) Handles Button1.Click
    Dim psi As New ProcessStartInfo()
    psi.FileName = "C:\Program Files\Savvy Training Tutorials\Word 2010\Savvy's Word 2010 Tutorial Menu.exe"
    psi.WorkingDirectory = IO.Path.GetDirectoryName(psi.FileName)
    Diagnostics.Process.Start(psi)
End Sub
安装到包含以下网站的目录:

Protected Sub BeginTutorial(sender As Object, e As System.EventArgs) Handles Button1.Click
    Dim psi As New ProcessStartInfo()
    psi.FileName = "E:\intranet\Word 2010\Savvy's Word 2010 Tutorial Menu.exe"
    psi.WorkingDirectory = IO.Path.GetDirectoryName(psi.FileName)
    Diagnostics.Process.Start(psi)
End Sub

我也试过去掉撇号,但也没用。有什么想法吗?

看看PSExec你知道客户端和服务器计算机不是同一台计算机,它们的磁盘上也不会有相同的程序吗?另外,如果程序从ASP.NET codebehind运行,客户端将永远看不到程序输出?只是确定一下。你的问题不清楚。嘿@JohnSaunders,我提供了三个不同版本的代码,最后两个版本的代码指向服务器。第一段代码是当我按下Debug按钮,它在浏览器中打开为“localhost…”,它应该打开的文件是一个可执行文件,然后会打开一个程序。嘿@MikeCheel,看起来PSExec工具会在服务器上启动程序,但不会在客户机上显示它?我误解了吗?很抱歉,我没有意识到你试图在本地查看它。这就是citrix所做的。我不知道如果没有特殊的软件是否真的可以做到这一点。