html、json和websockets的自托管web服务器所需的方向
本文关键字:web 服务器 方向 json websockets html | 更新日期: 2023-09-27 18:08:28
背景
我有一个用C#编写的windows控制台应用程序,它需要UI。我开始使用WPF,但由于我来自web背景,我想使用html和html5的一些功能,包括用于与另一个应用程序实时通信的web套接字。最初,我会使用网络浏览器作为UI,不过稍后我可能会在主应用程序中托管网络浏览器。这一点目前与我无关。
在谷歌上搜索/阅读了很多之后,我开始兜圈子了。看起来WCF可以用于提供html、基于json的web服务,可能还有web套接字流。谷歌上搜索到的很多信息都与.NET 4.0之前的社区项目有关。即使在4.0之后,也有几个NuGet包在我看来与框架中已经存在的内容重叠。对于WCF来说,这是一个雷区。
那么,我应该把精力集中在.NET 4.0 WCF和各种开源项目的哪些领域。
要求
我需要一个轻量级的自托管web服务器。它不能基于IIS,因为用户不会安装它。服务器必须:
- 能够为完整的网页提供服务器服务,包括html、链接图像、css和js文件。C#MiniHttpd做得很好,但不是基于http.sys。HttpListener似乎是我想要的核心,但我还没有找到一个完整的基于它的web服务器项目。
- [可选]能够通过asp.net或razor解析这些页面
- 能够通过json响应web服务调用。这一点我有一个使用System.ServiceModel的工作示例。这是正确的方法吗
- 能够使用新兴的Web套接字标准。SuperWebSocket正在积极开发中,但似乎不是基于http.sys或wcf的
首选项
- 我更愿意为我的所有3个主要需求坚持一个基本堆栈——我怀疑WCF可能就是那个平台
- 对于这三种需求,我更喜欢基于http.sys的方法,这样我就可以保留相关的url/port/namespace组合,并防止与其他web服务器或服务发生冲突
尽管其他SO问题可能有助于我的需求的各个方面,但我需要关于更全面方法的建议。
好吧,回答我自己的问题感觉不对,但是。。。
从那以后,我发现了一篇很棒的CodeProject文章,它提供了一个易于使用的自托管web服务器,用于提供html、css、js和图像,并提供json请求。
使用HTML5、CSS3和JQuery为自托管WCF服务开发Web 2.0用户界面
我仍然需要确定一个WebSockets解决方案,但上面的项目尽可能接近我目前所需要的。它不支持呈现asp.net或razor,但这是我的最低优先级,因为我很乐意在前端只使用纯html和javascript。
我将在未来尝试发布更具体的问题:(
除了您的WebSocket支持需求外,OpenRasta框架目前支持您所描述的内容。它肯定可以在http.sys中运行,既可以用于创建REST服务,也可以用作web应用程序平台。它还支持Razor和其他视图引擎。链接页面中间有一个很好的比较图,将其与ASP.NET MVC&WCF。
2014年3月,一个符合我最初需求的解决方案是ASP.NET Web Api。它可以是自托管的,显然也可以设置为提供html等。是否可以在windows服务中从自托管web API提供网页?