我最近使用升級助手工具將 dotnet framework v4.7.2 WCF 服務遷移到 NetStandard 2.0。該專案已成功遷移和編譯,但我無法從 Visual Studio 或 dotnet cli 啟動該服務。我從 dotnet cli 工具得到的錯誤是:
遇到致命錯誤。未找到執行應用程式所需的庫“hostpolicy.dll”。
和錯誤我在嘗試啟動從Visual Studio,解決方案管理服務- >在WCF專案右鍵- >除錯- >啟動新的實體:
輸出型別為類別庫的專案無法直接啟動。
PS,當 WCF 服務仍然是 dotnet framework v4.7.2 時,我可以在 Visual Studio 中執行上述程序輕松啟動該服務。
uj5u.com熱心網友回復:
據我所知,.net 4.7.2 是在此鏈接中支持 .netstandard 2.0 的最低真實版本。
您可以備份并升級到 4.7.2 進行試用。
uj5u.com熱心網友回復:
.NET Standard 或 .NET Core/.NET 5 不支持 WCF 服務器 API,因此沒有好的方法可以向前遷移此類應用程式。
升級助手會嘗試根據之前的專案型別確定專案是應該升級到庫還是 exe。對于這個專案,升級助手猜測它是一個庫,因為沒有傳統的 main 方法,它不是 Web 應用程式或工具理解為可執行的其他專案型別。但是,無論是將其升級為 .NET Standard 庫還是 .NET 5 exe,它都不起作用,因為 WCF 服務器 API 僅在 .NET Framework 上受支持。
如果升級助手在程序的早期提醒您這一點,那么您就知道升級不適用于此類專案,這可能會很好。我認為它有這樣的功能,但它肯定錯過了這個特定專案。您可以在該工具的 GitHub 頁面 ( https://github.com/dotnet/upgrade-assistant/issues )上提供反饋。
至于如何實際升級 WCF 服務器內容,您需要使用不同的技術(如 ASP.NET Core、gRPC 或CoreWCF)重新架構。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/344283.html
