在Windows服務中托管 ASP.NET Core的坑


按照官網教程

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刪除服務,發現服務還在,只是停止和禁用了。也不知道對不對。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM