wcf - 比较自托管 : WCF vs HttpListener

标签 wcf asp.net-web-api signalr httplistener

我一直在研究在自托管应用程序中使用 ASP.NET Web API 和 SignalR 的可能性,我注意到 ASP.NET Web API 自托管实现使用 WCF,而 SignalR 自托管实现使用 System.Net.HttpListener .这使得提出组合自托管解决方案变得有点困难,但它确实让我想知道为什么不同的项目团队会使用不同的方法。

每种方法的优缺点是什么? SignalR 无法使用 WCF 自托管或 Web API 无法使用 HttpListener 是否有任何特殊原因?

编辑 :我知道 Web API 自托管提供了比 SignalR 更完整的堆栈,我的问题更多是关于为什么在实现自己的自托管解决方案时会选择 WCF 实现而不是 System.Net.HttpListener。

最佳答案

就像我们在同一页面上一样,Web API 自主机使用的 WCF 自主机确实在幕后使用了 HttpListener。但是,我想我可能已经发现 WCF 自托管的一个主要缺点。

我还没有确认这一点,但似乎当您使用 Web API 自主机时,您提供的基地址不会直接转换为 HttpListener 前缀。似乎 WCF 转换了主机的基址和通配符。

这意味着 WCF 自主机将响应指定端口上的任何主机。这意味着您不能使用不同的主机名在同一端口上与 IIS 并行运行 Web API 自托管服务。

这可能是 SignalR 决定废弃 WCF Self-Host 并直接使用 HTTPListener 的原因。

关于wcf - 比较自托管 : WCF vs HttpListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12256602/

相关文章:

c# - 反序列化混合类型的 JSON 数组

wcf - WebHttpBinding 安全问题

wcf - 带有 TransportWithMessageCredential 的 WCF 是否使用 SSL?

c# - 如何将signalR实现到通过后端服务连接的两个项目

Azure SignalR Javascript 协商 "Unable to resolve ...ConnectionStringSetting"

.net - 在 Windows 上生成 ActivityTracing 事件日志

c# - 如何从 ApiController 中的 StringContent 对象读取 JSON?

c# - Restful 网址。查看特定型号

asp.net - HTTP header Access-Control-Allow-Origin 中是否存在允许来源的最大数量?

signalr - 客户端不断重新连接