如何使用 WebAPI 和 class 库打开 exe
How to open exe using WebAPI and 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;
}
}
我在同一个解决方案中有一个 class 库,它有如下一些方法:
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
时,我希望它能实际打开服务器中的记事本并且 return 是的,但它没有吨。相反,它显示了这样的错误:
<Error>
<Message>
The requested resource does not support http method 'GET'.
</Message>
</Error>
简而言之,我想从 API 调用一个 class 库,它可以访问服务器上的 exe 文件。在此示例中,我将记事本作为示例显示,但实际上它是我们创建的一个 exe。所以每次我发送请求,它都必须在它托管的服务器中打开记事本。
这可能吗?我错过了什么?
我添加了一张图片来展示我想要实现的目标:
由于这是一个 API 控制器,它将默认支持方法 GET、POST、PUT、DELETE。将 [HttpGet] 属性添加到您的 LaunchNotePad 方法或将您的方法名称更改为 GetLaunchNotePad。
我正在使用 c# .NET Framework 4.6.1 创建 WebAPI。我拿了一个空模板,添加了一个控制器:
public class InfoController : ApiController
{
public bool LaunchNotePad()
{
AppServices as = new AppServices();
bool result = as.LaunchNotePad();
return result;
}
}
我在同一个解决方案中有一个 class 库,它有如下一些方法:
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
时,我希望它能实际打开服务器中的记事本并且 return 是的,但它没有吨。相反,它显示了这样的错误:
<Error>
<Message>
The requested resource does not support http method 'GET'.
</Message>
</Error>
简而言之,我想从 API 调用一个 class 库,它可以访问服务器上的 exe 文件。在此示例中,我将记事本作为示例显示,但实际上它是我们创建的一个 exe。所以每次我发送请求,它都必须在它托管的服务器中打开记事本。
这可能吗?我错过了什么?
我添加了一张图片来展示我想要实现的目标:
由于这是一个 API 控制器,它将默认支持方法 GET、POST、PUT、DELETE。将 [HttpGet] 属性添加到您的 LaunchNotePad 方法或将您的方法名称更改为 GetLaunchNotePad。