【发布时间】:2018-04-14 03:31:02
【问题描述】:
我有OWIN enabled Web API 2 Service,我想将它托管在 .NET 控制台应用程序中,并且该服务的唯一客户端也将在同一个应用程序的进程中。因此,任何其他进程都应该无法访问服务的端点。这可能吗?
如果我这样运行我的应用程序:
using (WebApp.Start<MyStartup>(new StartOptions(MyUrl) { ServerFactory = "Microsoft.Owin.Host.HttpListener" }))
{
StartClientThread();
Console.WriteLine("Press any key to exit");
Console.ReadLine();
}
然后主机上的任何客户端都可以访问它,但我需要将客户端限制在同一进程中。
这在没有 OWIN 的情况下是可能的,因此请求是通过使用 HTTP 堆栈 inproc 发送的:
HttpServer server = InitHttpServer();
using (HttpClient client = new HttpClient(server, false))
{
// use client's methods to send http requests to the service.
}
但我需要与 OWIN 类似。
【问题讨论】:
-
如果一切都在进行中,为什么还要使用 HTTP?
-
我有一个 Web API 服务实现,它基于一个消费客户端,它可以在进程内使用,也可以在 IIS 中托管的常规 Web 服务使用。这里的重点是尽可能多地重用代码。