C# OWIN-无特定端口的自托管WebApi

C# OWIN-无特定端口的自托管WebApi,c#,asp.net-web-api,localhost,owin,self-hosting,C#,Asp.net Web Api,Localhost,Owin,Self Hosting,是否可以在不指定如下本地端口的情况下自承载WebApi服务: Microsoft.Owin.Hosting.WebApp.Start<Startup1>("http://localhost:9000") Microsoft.Owin.Hosting.WebApp.Start(“http://localhost:9000") 我认为在向客户部署时可能会遇到麻烦(例如防火墙问题或与占用同一端口的其他服务冲突) 我什么也没找到。每个教程/示例都使用该端口 如果没有Owin,则可以使用W

是否可以在不指定如下本地端口的情况下自承载WebApi服务:

Microsoft.Owin.Hosting.WebApp.Start<Startup1>("http://localhost:9000")
Microsoft.Owin.Hosting.WebApp.Start(“http://localhost:9000")
我认为在向客户部署时可能会遇到麻烦(例如防火墙问题或与占用同一端口的其他服务冲突)

我什么也没找到。每个教程/示例都使用该端口

如果没有Owin,则可以使用WebApi服务

编辑: 我希望服务根本不使用任何端口。服务器应该像在本博客中一样运行“inmemory”:

将该字符串移动到
web.config
文件:

<appSettings>
    <add key="_API_URL" value="http://localhost:9000">
</appSettings>

然后,可以在部署期间或之后转换配置文件中的任何设置,而无需更改或重建代码。让“IT管理员”处理防火墙。

这可能是一种解决方案:

它在Microsoft.Owin.Testing包中

这将允许我们创建一个内存服务器,它将接受 HTTP请求并发出HTTP响应,而不接触网络 堆栈(完全在过程中),这是非常有效和 非常快


端口对于每个连接都是必需的,如果您不指定它,它将只使用默认值(http为80,https为443)。您可以在内存中创建主机,而不创建TCP/IP连接,因此您不需要端口,但您将无法执行跨进程请求。如果您只想执行进程内请求,那么WebAPI可以做到这一点,这没有问题。如果我必须使用端口,这可能是一个解决方案。但我正在寻找一种解决方案,该服务在不使用任何端口的情况下“在内存中”运行。如果你想在内存中运行,那么你甚至不需要加入Owin。只需将一个HttpClient连接到一个WebAPI HttpServer。但是启动时的路由不会被配置,或者我错了吗?如果是这种情况,那么我必须在两个不同的位置配置路由。我总是创建一个静态方法,例如MyApi.Register(HttpConfiguration config),这样无论使用什么主机,我都可以重复使用配置设置。但是,从技术上讲,如果您只想在内存中托管一个web api,就不再需要StartUp类。
Microsoft.Owin./*...*/(ConfigurationManager.AppSettings["_API_URL"]);