我要求我的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/

10-13 07:58
查看更多