按照官網教程
https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1&tabs=aspnetcore2x
復制官方DEMO代碼,
https://github.com/aspnet/Docs/tree/master/aspnetcore/host-and-deploy/windows-service/sample
創建Asp.Net Core MVC項目。以release發布到d:\svc。
然后打開PowerShell,輸入命令,報錯
sc create MyService binPath="D:\svc\MvcService.exe"
Set-Content : 找不到接受實際參數“binPath=D:\svc\MvcService.exe”的位置形式參數。
所在位置 行:1 字符: 1
+ sc create MyService binPath="D:\svc\MvcService.exe"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Content],ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetContentCommand
覺得匪夷所思,命令跟官網一模一樣,怎么就不對呢?各種折騰都搞不定。
考慮到官網用的工具是傳統的命令提示符,所以換一下。最新版的Win10,右鍵點擊開始菜單,已經沒有命令提示符。左鍵點開始菜單,鍵盤打cmd,可以找到命令提示符工具,此時還要用右鍵,以管理員身份運行,非常麻煩。
然而竟然成功安裝了服務!
訪問http://localhost:5000可以看到網頁。
真是無語了,我一直認為PowerShell就是CMD的升級版,向前兼容的,沒想到還有這種坑。
最后用sc delete MyService刪除服務,發現服務還在,只是停止和禁用了。也不知道對不對。