我要求我的Web服务(用WebAPI编写)应将一些数据打印到与我的服务器关联的打印机上。
(简而言之,我的客户会将一些数据发送到我的WebAPI服务,并且我的域(服务器域)中的打印机应该打印它。)
我将服务托管在IIS中,并使用PrintManager打印数据。但是,似乎我们不应该这样做,因为IIS中托管的Web服务实际上不应与本地硬件进行通信(这似乎不是推荐的方法)。
尽管有很多有关自托管WCF或WebAPI的教程,但我试图找出在这种情况下是否可以使用自托管。
我可以在Windows服务中自行托管WebAPI应用程序,以便该服务有权访问打印机吗?
最佳答案
自托管是在您控制的环境(WinForms,控制台,Windows服务等)中托管Web API的能力。
因此,简而言之,是的,您可以自托管Web API解决方案,并且可以使用类似于以下代码的方式来实现:
var config = new HttpSelfHostConfiguration("http://localhost:8080");
config.Routes.MapHttpRoute(
"API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });
using (HttpSelfHostServer server = new HttpSelfHostServer(config))
{
server.OpenAsync().Wait();
Console.WriteLine("Running on port 8080 - Press Enter to quit.");
Console.ReadLine();
}
关于c# - 什么是自托管?可以与Web api一起使用以与设备通信吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25745657/