按照官网教程git
https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1&tabs=aspnetcore2xgithub
复制官方DEMO代码,windows
https://github.com/aspnet/Docs/tree/master/aspnetcore/host-and-deploy/windows-service/sample工具
建立Asp.Net Core MVC项目。以release发布到d:\svc。3d
而后打开PowerShell,输入命令,报错blog
sc create MyService binPath="D:\svc\MvcService.exe"教程
Set-Content : 找不到接受实际参数“binPath=D:\svc\MvcService.exe”的位置形式参数。get
所在位置 行:1 字符: 1cmd
+ sc create MyService binPath="D:\svc\MvcService.exe"it
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Content],ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetContentCommand
以为匪夷所思,命令跟官网如出一辙,怎么就不对呢?各类折腾都搞不定。
考虑到官网用的工具是传统的命令提示符,因此换一下。最新版的Win10,右键点击开始菜单,已经没有命令提示符。左键点开始菜单,键盘打cmd,能够找到命令提示符工具,此时还要用右键,以管理员身份运行,很是麻烦。
然而居然成功安装了服务!
访问http://localhost:5000能够看到网页。
真是无语了,我一直认为PowerShell就是CMD的升级版,向前兼容的,没想到还有这种坑。
最后用sc delete MyService删除服务,发现服务还在,只是中止和禁用了。也不知道对不对。