WebService没有运行exe

时间:2016-11-21 18:07:13

标签: vb.net web-services visual-studio-2010 exe

我已经引用了一些关于如何在stackoverflow上执行此操作的提及。

我尝试使用以下参考代码进行测试:

https://www.dotnetperls.com/process

How to run .exe file by my Webservice?

VERSION:Framework 3.5

VisualStudio2010

当我在浏览器中运行下面的代码时,我看到要点击的项目符号点。当我点击它时没有任何反应。我的exe只是找到一个xml文件并从中创建一个新文件。我想使用webservice来运行exe。我的代码中是否缺少某些内容?还有其他版本,我看到有更多的代码,但我尝试了它们仍然没有运气[检查我的链接]

这是我的第一个网络服务,所以我正在学习。

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.IO

' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
' <System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://localhost/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Service1
Inherits System.Web.Services.WebService

Dim File As String

<WebMethod()> _
Public Sub runExe()

Dim exe = "C:\WindowsApplication1\bin\Debug\WindowsApplication1.exe"
    'Dim file = "C:\Test\test.xml"

    Dim startInfo As New ProcessStartInfo()
    startInfo.FileName = exe
    'startInfo.Arguments = file
    Process.Start(startInfo)

    'REFERENCE: https://www.dotnetperls.com/process

End Sub

我还尝试了使用

calling .exe from another .exe to run a webservice
ThreadPool.QueueUserWorkItem(Sub() Process.Start("C:\WindowsApplication1\bin\Debug\WindowsApplication1.exe"))

但exe没有运行,我没有看到在exe发送给它的文件夹路径中创建的新文件。

也尝试过:

Dim processInfo = New ProcessStartInfo(exe)
Dim process__1 = Process.Start(ProcessInfo)
process__1.WaitForExit(5000)
Dim exitCode = process__1.ExitCode
process__1.Close()
Return

什么都没发生

更新

没想到要使用输出测试来查找我的问题。我使用了以下内容:

While Not process__1.StandardOutput.EndOfStream
   Dim line As String = process__1.StandardOutput.ReadLine()
End While

1 个答案:

答案 0 :(得分:1)

回应你的评论......

  

我计划使用我的asp.net应用程序与此服务进行通信以运行exe。所以我会想客户

对Web应用程序的工作方式的错误理解。您的服务器端ASP.NET代码(VB部分)只是服务器端。所有代码都在Web服务器上执行。浏览器/客户端/等。不知道它。

(想象一下,你所访问的任何网站可以在你的计算机上任意执行他们想要的任何.NET代码的世界。听起来不是很有趣。)

如果您希望客户端执行应用程序,您必须将应用程序发送到客户端(例如下载它的链接),并基本上要求他们运行它。您的服务器端代码无法在客户端计算机上自动执行应用程序。