【问题标题】:Running-EXE-through-web-services运行-EXE-through-web-services
【发布时间】:2009-05-14 06:45:22
【问题描述】:

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

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

还有一件事,如果它是 Windows 服务,它工作得很好......

有什么想法???

【问题讨论】:

    标签: c# web-services


    【解决方案1】:

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

    我已经完成了您在 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 文件执行完毕。

    希望这会有所帮助。

    【讨论】:

    • 还有一件事,请确保授予 PC-NAME\ASPNET 本地帐户访问 exe 位置的权限。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多