gpt4 book ai didi

c# - 在 Windows 服务中托管 ASP.NET 5 Web 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:32 25 4
gpt4 key购买 nike

我有一个基于 .NET Framework 4.5 的现有 Windows 服务应用程序,我想添加一个用于配置和诊断的用户界面。

在 Windows 窗体或 WPF 中,服务将通过 TCP 连接(.NET Remoting 或 WCF)将其数据发送到客户端,但这需要在客户端或服务器端进行额外的配置,并且还需要服务和客户端是在相同的兼容性级别上,在最坏的情况下意味着多个客户端用于多个服务。

我有一个想法,即使用新的 ASP.NET5 Web 应用程序将服务和用户界面融合到一个应用程序中。当 Windows 服务启动时,首先我想启动 Web 服务器,然后再启动服务的其余部分。因此,用户可以在不安装任何额外软件的情况下与服务进行交互。Web 应用程序和 Windows 服务应该在同一个 AppDomain 中运行,这样我就可以在用户界面中更改一个对象,服务可以立即使用它。

到目前为止,我已经使用了一些新的控制台应用程序 (dnx451) 并通过 WebHostBuilder 进行托管并获得了一个工作页面,但我认为这不是我正在寻找的解决方案。我得到了项目输出和一个用于启动服务器的 cmd 文件。

所以我的第一个问题是:是否有适用于 .NET 4.5 的 WebHostBuilder 的等效实现,以在传统 Visual Studio 项目中运行网站?

我的第二个想法是在 IIS 中完全运行该服务,这样我就有了一个托管现有服务功能的网页。但我不知道 IIS 中的应用程序和 Windows 服务中的应用程序之间有任何区别。在这种情况下,ASP.NET 4.6 是什么?因为我认为我必须将我现有的库转换为新的 ASP.NET5 类库(包)。

我能想到的最后一种可能性是将 Web 应用程序发布到 IIS 并将服务作为 Windows 服务并通过 WCF NamedPipes 进行通信,就像我对 WPF 或 Windows 窗体应用程序所做的那样。

总而言之,是否有任何计划支持我的第一个想法,或者我是否必须选择其他想法?哪个选项可能是最好的?

最佳答案

您可以使用 DNX451(不是 DNX Core)在 .NET 4.5.1 上运行 ASP.NET 5,并使用 Windows 服务托管它。我在这里写了一篇关于如何做到这一点的文章:http://taskmatics.com/blog/host-asp-net-in-a-windows-service/

关于c# - 在 Windows 服务中托管 ASP.NET 5 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31755774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com