我有一个使用Winforms编写的桌面应用程序。现在有人想从其他机器访问数据。一开始我考虑使用常规的客户端/服务器应用程序,但现在我认为最好的方法是让应用程序充当HTTP服务器,并向连接的浏览器发送HTML。
有没有人知道是否有可用的库来为应用程序添加HTTP服务器功能?理想情况下,它应该能够提供ASP.NET内容。
正如Jon所说,您可以使用HttpListener实现HTTP服务器。有关提供ASP.NET内容的内容,请参见System.Web.Hosting命名空间。
需要注意的是,您的设计只在应用程序运行时才可用于HTTP服务器。因此,当桌面应用程序的用户关闭它或注销时,其他人将无法通过您的Web界面访问数据。因此,您可能需要重新考虑您的方法,并将数据访问功能分解为一个单独的DLL,然后可以从托管在IIS上的ASP.NET应用程序中调用它。
HttpListener
。我认为它不太容易托管完整的ASP.NET,虽然我相信有办法可以实现。但发送简单的HTML并不难。你可以考虑将 HttpListener 代码分离出来,开发一个 Windows 服务,在计算机启动时启动该服务。这将允许您长时间地提供 HTML,而无需始终运行桌面应用程序,也无需获取像 IIS 这样的 Web 服务器。
如果您想与更广泛的客户端进行通信,而不仅仅是浏览器,请研究 WCF。使用 WCF,服务可以由任何 .NET 应用程序托管;例如 Winforms、WPF、Windows 服务、ASP.NET、控制台等,并允许在 HTTP、TCP、命名管道等各种介质上进行通信。