首页 > 解决方案 > 从 wep api 启动 ac# 程序失败

问题描述

我正在尝试从 wep api 启动 ac# 程序。当我在 Visual Studio 开发下尝试这个时,它会运行。在 IIS 上发布后,程序无法启动。我没有收到任何错误,它永远不会在 catch 块中运行。为什么“process.Start”不起作用?

public class ServerController : ApiController
{

    [ActionName("starthilfe")]
    public Info GetHelp()
    {
        Info inf = new Info();
        try
        {
            Process P = new Process();
            P.StartInfo.FileName = @"D:\Videos\Deutsch\WindowsFormsApp1.exe";
            P.Start();
            inf.TextFeld1 = "Hilfe erfolgreich gestartet";
            return inf;
        }
        catch (Exception ex)
        {
            inf.TextFeld1 = "EXEPTION";
            inf.TextFeld2 = ex.Message;
            return inf;
        }
    }
}

标签: asp.netweb-services

解决方案


首先,我会检查您在运行应用程序的服务器上遇到了哪些权限问题。其次,我认为您的问题的核心是,当您在调试模式下运行 Web 应用程序时,您正在运行。但是当您发布到 IIS 时,您最有可能以 IUser 身份运行。IIs 网站的特殊用户。这篇堆栈溢出文章可以帮助您弄清楚您的 IUser 拥有哪些权限。解决方法是为应用程序创建另一个用户,该用户具有比 IUser 更多的权限。只是提醒更改您的 Web 应用程序使用的用户可能会产生安全隐患。所以你应该小心


推荐阅读