1
votes

launchSettings.json launchUrl ne fonctionne pas "api / values"

J'essaie de modifier la route http: // localhost: 5001 / api / values ​​ mais la route programme est bloqué cette url.

J'ai lu ces solutions

Comment changer le contrôleur et l'action par défaut dans l'API ASP.NET Core?

Comment rediriger root vers swagger dans Asp.Net Core 2.x? a >

https: // moyen. com / quick-code / routing-in-asp-net-core-c433bff3f1a4

Tout le monde écrit la même chose mais ne fonctionne pas pour moi.

Mon launchSetting Le fichier .json est

{  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:54650",
      "sslPort": 44382
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "ShoppingBasketAPI": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

J'ai essayé de changer app.UseMvc();

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.2

cela ne fonctionne pas non plus. D'où vient api / values ​​? Je n'arrive pas à comprendre.

La route d'attributs de mon contrôleur est [Route("api/[controller /[action[action))


0 commentaires

3 Réponses :


2
votes

Lorsque vous créez un nouveau projet API Web ASP.Net Core, vous verrez que dans la propriété du projet, il y a un paramètre Lancer le navigateur qui est défini sur le chemin api / values ​​. Vous pouvez donc le changer en l'URL que vous voulez ou vous pouvez changer dans votre fichier launchSetting.json

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:54356",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WebApplication4": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Vous verrez donc dans la section des profils il y aura 2 config. L'une concerne IIS express (lorsque vous utilisez Visual Studio pour exécuter votre code) et WebApplication4 (lorsque vous exécutez un projet à l'aide de dotnet run) afin que vous puissiez passer à

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:54356",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "api/values",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WebApplication4": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api/values",
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Donc, lorsque vous utilisez VS pour exécuter le projet ou la commande dotnet run servira toujours l'url swagger en premier.


3 commentaires

Oui, mais cela ne fonctionne pas tous les deux. Je reçois toujours la route API / Valeurs, est-ce que c'est parce que j'utilise macOS?


@ HaktanEnesBiçer Je ne pense pas. Essayez de rechercher des api / valeurs dans le projet pour voir s'il reste du code qui contient cela? Mon approche fonctionne parfaitement bien. Je pense qu'il y a quelque chose qui ne va pas dans le code


J'ai trouvé le problème. C'est à cause de Visual Studio Mac.J'ai cherché avant 'api / values', il ne trouve aucun code.



0
votes

Le problème est dû à Visual Studio pour Mac. J'ai pu obtenir l'URL correcte au hasard Exécuter avec> Configuration personnalisée> Exécuter l'action -> Déboguer le débogueur .Net Core


0 commentaires

0
votes

J'utilise VSCode et cela m'arrive de la même manière, mais sous Windows. J'améliore juste un peu la réponse ici.

J'ai essayé VS2019 et cela a fonctionné dans cet IDE, donc c'est supposément à voir avec VSCode. J'ai recherché d'autres réponses et j'ai trouvé celles-ci.

Débogage de vscode launch.json et ouvrir une URL spécifique

Ce qui a résolu mon problème était d'aller dans le fichier .vscode / launch.json et d'ajouter:

         "launchBrowser": {
            "enabled": true,
            "args": "${auto-detect-url}",
            "windows": {
                "command": "cmd.exe",
                "args": "/C start ${auto-detect-url}/swagger"
            }

comme le décrit Anton Dremin, il suffit d'ajouter ce qui précède dans la section des configurations.


0 commentaires