.Net Core 3.0:构建Windows桌面应用托管的Asp.Net Core网站

3 下载量 157 浏览量 更新于2024-08-30 收藏 1.02MB PDF 举报
"使用.Net Core3开发Windows桌面应用托管Asp.Net Core网站的实践与技术解析" 在.Net Core 3.0及之后的版本中,微软引入了对Windows桌面应用开发的支持,这使得开发者能够利用.Net Core的优势来创建桌面应用程序,并且结合Asp.Net Core构建Web服务。Asp.Net Core网站原本基于控制台程序开发,使用`Microsoft.NET.Sdk.Web` SDK,而Windows桌面应用则使用`Microsoft.NET.Sdk.WindowsDesktop` SDK。然而,在同一项目中同时使用这两种SDK并不直接支持,可能会导致各种问题,比如Razor视图引擎的异常。 本文将探讨如何实现将Asp.Net Core网站托管在Windows桌面应用中,实现自定义的Web服务器功能。首先,开发者需要具备Visual Studio 2019 16.4.0或更高版本以及.Net Core 3.1 SDK。从项目源代码(如GitHub上的特定分支)中获取代码后,需要删除不必要的项目以避免编译错误。接着,对代码进行相应修改,例如调整配置文件和引用包。 在代码修改过程中,重要的一环是确保所有Nuget包成功还原,特别是对于依赖于JavaScript的组件,如IdentityServer的npm包。发布项目时,针对IdentityServer项目,应使用FolderProfileRelease配置进行发布。这样做的目的是为了确保Asp.Net Core网站能够在非IIS环境下正常运行。 实现自托管的关键在于理解Asp.Net Core的自我托管特性。通过Kestrel服务器,Asp.Net Core应用可以脱离IIS等传统Web服务器独立运行。在Windows桌面应用中集成Kestrel,开发者可以控制Web服务器的启动、停止以及配置,从而将Asp.Net Core网站的功能无缝集成到桌面应用中。 在桌面应用的Main函数中,开发者可以启动Kestrel服务器,指定监听的端口和IP地址,然后提供必要的路由和服务注册。这样,用户在运行桌面应用时,不仅可以享受到桌面应用的便利,还可以直接通过内置的Web服务器访问Asp.Net Core网站功能。 此技术的应用场景广泛,例如开发集成Web界面的工具软件、企业内部系统,或者作为快速原型开发的解决方案。通过这种方式,开发者可以充分利用.Net Core的跨平台优势,同时享受Windows桌面应用的交互体验。 将Asp.Net Core网站托管在Windows桌面应用中是一种创新的开发模式,它融合了Web服务的灵活性和桌面应用的直接性。这一技术的实现依赖于.Net Core 3.0及后续版本提供的新功能,让开发者能够更加自由地设计和构建应用程序,为用户提供更丰富的交互体验。