我在服务器上部署了ASP.Net应用程序。我想知道它是否能够在按钮点击时访问我的本地系统exe文件。
我在互联网上阅读了很多关于此事的文章。有人说ASP.Net应用程序无法访问本地程序。虽然有些人暗示它取决于权限,身份和其他事情。
我在本地计算机上尝试了类似的操作,但即使在为本地系统,网络服务提供访问权限之后,甚至将应用程序池标识更改为本地系统,我也无法完成相同的操作...... / p>
所以我只想确认这件事是否可能......
这是我正在尝试执行的代码
Dim pstartinfo As New ProcessStartInfo()
Dim p As New Process()
pstartinfo.WorkingDirectory = "D:\VS2010Projects\SignatureCaptureWindows\bin\Debug"
pstartinfo.FileName = "SignatureCaptureWindows.exe"
pstartinfo.CreateNoWindow = False
p = Process.Start(pstartinfo)
p.WaitForExit()
If (Not p.ExitCode.Equals(0)) Then
Response.Write("Image Successfully saved in Database with ID = " + p.ExitCode.ToString())
DisplaySavedImage(p.ExitCode)
Else
End If
在locahost上运行时,它工作正常..当我在我的本地IIS上部署它时,它不会打开exe
答案 0 :(得分:1)
可能并且要求应用程序池用户具有可执行文件位置和执行权限的权限。
您可以使用Process
类执行几乎任何操作(如果需要,甚至可以使用不同的用户凭据)。
不要忘记,尝试使用UI运行应用程序通常不会很好,因为应用程序池不能在交互式环境中运行(因此,它无法打开窗口和单击按钮)。
您应该将自己限制为非交互式的可执行文件,因为Web服务器将无法与Windows等进行交互。
在您的特定场景中,您需要用户输入其签名并保存 - 您需要他们上传签名(我假设图像文件已经存在),或者在客户端创建这样的图像(比如canvas
和JavaScript)。然后,您可以上传图像并保存。