Как открыть EXE с помощью WebAPI и библиотеки классов - PullRequest
0 голосов
/ 09 января 2019

Я создаю WebAPI в c # .NET Framework 4.6.1.
Я взял пустой шаблон, добавил контроллер.

 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-файлам на сервере. В этом примере я показал блокнот как образец, но на самом деле это исполняемый файл, который мы создали. Поэтому каждый раз, когда я отправляю запрос, он должен открывать блокнот на сервере, где он размещен.
Я хочу знать, возможно ли это вообще, и если да, то как. Чего мне не хватает в этом.
Любая помощь высоко ценится.

Добавлена ​​картинка, показывающая, чего я пытаюсь достичь, если это поможет.

enter image description here

1 Ответ

0 голосов
/ 09 января 2019

Поскольку это API-контроллер, он будет поддерживать методы GET, POST, PUT, DELETE по умолчанию. Добавьте атрибут [HttpGet] в метод LaunchNotePad или измените имя метода на GetLaunchNotePad.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...