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