我正在尝试在我的Web服务中调用Windows控制台应用程序。如果我将它作为本地服务运行,即在同一解决方案中,它可以正常工作,但如果我尝试通过托管为IIS localServer的Web服务调用它,则不会调用它。我认为这是安全问题。我是Web服务的新手,我正在使用
调用应用程序 Process.Start() function...
还有一件事,如果是Windows服务,那就太棒了......
任何想法???
答案 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_ *用户帐户是否有权执行控制台应用程序?