运行-EXE-通网络服务

时间:2009-05-14 06:45:22

标签: c# web-services

我正在尝试在我的Web服务中调用Windows控制台应用程序。如果我将它作为本地服务运行,即在同一解决方案中,它可以正常工作,但如果我尝试通过托管为IIS localServer的Web服务调用它,则不会调用它。我认为这是安全问题。我是Web服务的新手,我正在使用

调用应用程序
           Process.Start() function...

还有一件事,如果是Windows服务,那就太棒了......

任何想法???

2 个答案:

答案 0 :(得分:3)

将您的控制台视为一个单独的项目。确保先行。

我已经完成了你在asp.net网络应用中所描述的内容。我测试了它;相同的代码在Web服务中工作正常。这里的诀窍是“startInfo.UseShellExecute = False”

在该示例中,参数被传递到在运行时执行的控制台应用程序。 (对不起,在VB中)。

Dim startInfo As System.Diagnostics.ProcessStartInfo
Dim pStart As New System.Diagnostics.Process

startInfo = New System.Diagnostics.ProcessStartInfo("C:\Inetpub\wwwroot\KPIMi\Annotation Editor\Annotation_Console.exe")
startInfo.Arguments = strServerName & "-" & strPrimaryKey & "-" & txtStart.Text
startInfo.UseShellExecute = False

pStart.StartInfo = startInfo
pStart.Start()

pStart.WaitForExit()'您的代码将暂停,直到执行exe文件为止。

希望这有帮助。

答案 1 :(得分:0)

IUSR_ *用户帐户是否有权执行控制台应用程序?