![](/img/trans.png)
[英]How do I Debug blazor wasm asp.net core hosted on Vscode?
[英]Hosting blazor wasm asp.net core hosted app in kestrel
我在托管blazor wasm asp.net core hosted
應用程序時遇到問題。該解決方案有 3 個項目: Client 、 Shared和Server 。
當我運行命令do.net publish --configuration Release
時,它將庫發布到解決方案中各自的文件夾,如下所示:
我假設由於server
項目正在引用client
- 那么我托管應用程序的步驟如下:
WebWorkbench3\Server\bin\Release.net5.0\publish
do.net.\WebWorkbench3.Server.dll
https://localhost:5001/
_framework/blazor.webassembly.js
的錯誤。wwwroot
文件夾內容,我們將看到以下內容: 所以這解釋了為什么顯示錯誤。 但是我現在的問題是——項目中的發布過程/配置是否應該負責將客戶端的wwwroot
內容復制到服務器的應用程序 output 目錄中? 如果我們在 VisualStudio 中啟動調試 session,然后我們使用server
作為啟動點,那么項目應該知道在哪里查找blazor.webassembly.js
文件 at..
那么為什么在發布過程中不發生相同的過程呢?
注意:我能夠通過手動復制客戶端的wwwroot
目錄並將內容放入服務器的wwwroot
目錄來解決這個問題......但我不認為服務應該如何工作?
編輯:我剛剛嘗試在 IIS 中設置client
blazor 應用程序。它有效。 有點兒。 頁面打開。 但是當它嘗試向服務器發出 REST GET 請求時 - 它使用相同的hostname:port
組合。 因此,如果我的應用程序托管在mysite.local:50001
上,那么對 API 的請求將類似於mysite.local:50001/data/loadall
,其中data
是 controller 名稱, loadall
是操作名稱。所以基本上客戶端使用相同的作為服務器的基地址。問題是我無法在與客戶端相同的端口上啟動服務器:嘗試這樣做 - 您將看到以下輸出:
所以基本上我有和以前一樣的問題 - 如何托管在客戶端和服務器之間拆分的 wasm 應用程序? 我很確定我可以通過強制客戶端使用非標准服務器端口並在該端口上為server
部分提供服務來使其工作。但是,我相信當前配置應該是有原因的(blazor 中的默認配置wasm 模板)以這種方式配置,因此應該可以以某種方式運行項目而無需任何其他更改。
好吧,這將是一個自我回答..而不是在解決方案級別發布( dotnet publish --configuration Release
)應用程序 - 在項目級別發布..
..\repos\WebWorkbench3\WebWorkbench3
..\repos\WebWorkbench3\WebWorkbench3\Server
之后在一種情況下,編譯器不會將_framework
文件夾(可能還有其他一些文件)復制到wwwroot
.. 正確發布服務器后,您可以通過使用dotnet.\WebWorkbench3.Server.dll
命令來訪問應用程序。
具有如上所述的相同問題:
前:
解決方案文件
作為服務器項目
解決
我將解決方案移至項目根目錄(上一級)。
現在,服務器項目中的 do.net do.net publish
按預期生成了__framework
文件夾 + 內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.