首页 新闻 会员 周边

怎么使用wpf或者winform程序宿主 asp.net core web api

0
悬赏园豆:10 [已解决问题] 解决于 2018-07-25 15:48

怎么使用wpf或者winform程序宿主 asp.net core web api

asp.net core web api 自带有自宿主,但不想用控制台程序,想怎么宿主到winform或者wpf。

这样在windows服务器直接开启这个中间层程序就可以了,不需要安装以及部署iis

村委第一书记的主页 村委第一书记 | 初学一级 | 园豆:26
提问于:2018-07-25 10:53
< >
分享
最佳答案
2

最简单的方法就是,用WinForm程序调用dotnet,并隐藏cmd窗口:

System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.FileName = "dotnet";
startInfo.Arguments = "xxx.dll";
startInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.CreateNoWindow = true;
System.Diagnostics.Process.Start(startInfo);
收获园豆:7
大豆男生 | 小虾三级 |园豆:608 | 2018-07-25 15:02

谢谢!这种方法可以,已经可以成功部署

村委第一书记 | 园豆:26 (初学一级) | 2018-07-25 15:47
其他回答(2)
1

试试在 wpf 或 winform 程序中通过下面的代码运行 asp.net core 站点

await Task.Run(() => CreateWebHostBuilder(args).Build().Run());
收获园豆:3
dudu | 园豆:30994 (高人七级) | 2018-07-25 12:17

其实我是有个独立的core web api程序,这个程序既可以正常的宿主到iis,或者其他的web服务器。

但是为了简化这个部署的过程。

前提是在windows服务器,我想运行一个winform或者wpf的独立程序,来宿主这个webapi。主要是为了简化方便。原来的asp.net 时代  owin是可以做到的。现在core web api没什么思路,想着这个wpf程序里面执行dotnet 命令来,但是cmd的屏幕不能关闭,有什么办法把这个api独立的宿主到winform程序,而不改变这个api的完整性

支持(0) 反对(1) 村委第一书记 | 园豆:26 (初学一级) | 2018-07-25 13:11

@sylla: IIS 只是一个反向代理,asp.net core 的 web 服务器是内置的 Kestrel
相关博问:请问 Kestrel 服务器为什么建议配合 iis 或者是 nginx 使用?
相关博文:.NET Core开发日志——从ASP.NET Core Module到KestrelServer

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2018-07-25 13:17
0

同问更好的解决方案 使用cmd挺麻烦 关闭是个问题 是不是有更好的方案!

ToLing· | 园豆:202 (菜鸟二级) | 2021-02-07 12:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册