Как отладить ядро ​​blazor wasm asp.net, размещенное на Vscode?

Я создаю новый проект с размещенным ядром Blazor wasm asp.net, поэтому в моем проекте есть клиент, сервер, общий доступ.

Первоначально я использовал Visual Studio для разработки, но я хочу обратиться к VSCode, потому что я больше использую Vscode.

Но у меня возникла проблема. Если я установлю точку останова на коде на стороне clinet, он будет работать, а на стороне Sever не сработает.

моя структура кода бритва ---> интерфейс на стороне clinet --> API ---> контроллер на стороне сервера ---> интерфейс на стороне сервера для продукта Crud.

Теперь я хочу отладить код Server-sdie, но точка останова не работает.

Это мой компьютер SDK

Пакет SDK для .NET: Версия: 6.0.404 Коммит: be4f3ec411

Оболочка ОС: Название ОС: Windows Версия ОС: 10.0.22621 Платформа ОС: Windows РИД: win10-x64 Базовый путь: C:\Program Files\dotnet\sdk\6.0.404\

Хозяин: Версия: 7.0.1 Архитектура: x64 Фиксация: 97203d38ba

Установленные пакеты SDK для .NET: 6.0.404 [C:\Program Files\dotnet\sdk]

Установленные среды выполнения .NET: Microsoft.AspNetCore.App 6.0.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 7.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.WindowsDesktop.App 6.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

и это мой серверный launchSetting.json

{
    "iisSettings": {
      "windowsAuthentication": false,
      "anonymousAuthentication": true,
      "iisExpress": {
        "applicationUrl": "http://localhost:30765",
        "sslPort": 44311
      }
    },
    "profiles": {
      "SipposM2.Server": {
        "commandName": "Project",
        "dotnetRunMessages": true,
        "launchBrowser": true,
        "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser = {browserInspectUri}",
        "applicationUrl": "https://localhost:7295;http://localhost:5036",
        "environmentVariables": {
          "ASPNETCORE_ENVIRONMENT": "Development"
        }
      },
      "IIS Express": {
        "commandName": "IISExpress",
        "launchBrowser": true,
        "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser = {browserInspectUri}",
        "environmentVariables": {
          "ASPNETCORE_ENVIRONMENT": "Development"
        }
      }
    }
  }

VSC launch.json и Tasks.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch and Debug Standalone Blazor WebAssembly App",
            "type": "blazorwasm",
            "request": "launch",
            "cwd": "${workspaceFolder}/SipposM2/Server",
            "browser": "edge",
            "url": "https://localhost:7295",
        },
        {
            "name": "Watch",
            "type": "coreclr",
            "request": "launch",
            "cwd": "${workspaceFolder}/SipposM2/Server",
            "program": "dotnet",
            "args": [
                "watch",
                "--project",
                ".",
                "--verbose" // Let's us confirm browser connects with hot reload capabilities
            ],
            "preLaunchTask": "build" // Ensure we don't watch an unbuilt site
        },
        {
            "name": "Attach",
            "type": "blazorwasm",
            "request": "attach",
            "cwd": "${workspaceFolder}/SipposM2/Server",
            "url": "https://localhost:7295",  // Tell launch where to find site
            "timeout": 120000, // Allows time for the site to launch
        }
    ],
        "compounds": [
        {
            "name": "Debug with Hot Reload",
            "configurations": [ "Watch", "Attach" ]
        }
    ]
}
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/SipposM2/Server/SipposM2.Server.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },
        {
            "label": "publish",
            "command": "dotnet",
            "type": "process",
            "args": [
                "publish",
                "${workspaceFolder}/SipposM2/Server/SipposM2.Server.csproj",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "problemMatcher": "$msCompile"
        },
        {
            "label": "watch",
            "command": "dotnet",
            "type": "process",
            "args": [
                "watch",
                "run",
                "--project",
                "${workspaceFolder}/SipposM2/Server/SipposM2.Server.csproj"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
}

Когда я действительно нажму F5, Vscode сообщит мне о несвязанной точке останова.

Я попытался добавить <DebuggerSupport> и <CopyOutputSymbolsToPublishDirectory> в Server.csproj, но это не сработало.

    <DebuggerSupport>true</DebuggerSupport>
    <CopyOutputSymbolsToPublishDirectory>true</CopyOutputSymbolsToPublishDirectory>

Вы хотите отлаживать в браузере или в бэкенде с помощью VScode?

Md Farid Uddin Kiron 10.01.2023 03:59

использование Vscode для отладки

曾靖文 12.01.2023 08:24

Надеюсь, вы получили объяснение и как вам следует действовать дальше.

Md Farid Uddin Kiron 12.01.2023 08:54
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Но у меня возникла проблема. Если я установлю точку останова на коде на стороне clinet, он работает, Северная сторона не работает.

Ну, ваша конфигурация кажется в порядке. Хотя в отношении кода Visual Studio нам требуются следующие расширения:

  1. Расширение кода C# для Visual Studio
  2. Расширение отладки Blazor WASM

Однако в настоящее время автономный Blazor WebAssembly позволяет отлаживать только браузер. Вы можете проверить здесь, в нашем официальном документе.

Примечание. Опубликованные размещенные приложения Blazor WebAssembly должны разрешать отладку и копирование выходных символов только при локальном развертывании опубликованных ресурсов. Вы можете проверить более подробную информацию здесь, в разделе предупреждений.

Добро пожаловать и рады помочь вам в этом.

Md Farid Uddin Kiron 12.01.2023 08:26

Другие вопросы по теме