如何使用WebAPI和类库打开exe

时间:2019-01-09 05:45:18

标签: c# asp.net-mvc asp.net-web-api class-library

我正在c#.NET Framework 4.6.1中创建WebAPI。
我采取了一个空模板,添加了一个控制器。

 public class InfoController : ApiController
{
    public bool LaunchNotePad()
    {
        AppServices as = new AppServices();
        bool result = as.LaunchNotePad();
        return result;
    }

}

在相同的解决方案中,我有一个类库,其中包含一些如下所示的方法。

public class AppServices
    {
        System.Diagnostics.Process.Start();
        public bool LaunchApplication()
        {
            bool result = false;
            Process.Start("notepad.exe", "SomeName");
            return true;

        }
    }

在我的WebApiConfig.cs中:

config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );  

当我主持并运行URL时:http://IPAddress/api/Info/LaunchNotePad
我希望这实际上可以打开服务器中的记事本并返回true,但事实并非如此。而是显示了这样的错误:

<Error>
<Message>
The requested resource does not support http method 'GET'.
</Message>
</Error>

简而言之,我想从API调用一个类库,该类库可以访问服务器上的exe文件。在此示例中,我以记事本为示例,但实际上它是我们创建的一个exe。因此,每次发送请求时,它都必须在托管它的服务器中打开记事本。
我想知道这是否可能,如果可以的话。我想念的是什么
非常感谢您的帮助。

添加了图片以显示我要实现的目标(如果有帮助的话)。

enter image description here

1 个答案:

答案 0 :(得分:0)

由于这是一个API控制器,因此默认情况下将支持GET,POST,PUT,DELETE方法。将[HttpGet]属性添加到LaunchNotePad方法中,或将方法的名称更改为GetLaunchNotePad。