Q:

API Rest ASP.Net Core 3.1 retornando erro 404 quando publicada

Estou fazendo alguns testes com APIs em ASP.Net Core 3.1. Neste caso, estou usando Entity Framework para acessar o banco de dados e Identity Core para registrar e logar usuários.
Para isso, implementei o seguinte controller:
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.IdentityModel.Tokens;
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;

[Route("api/[controller]")]
[ApiController]
public class AccountController : ControllerBase
{
    private readonly UserManager<IdentityUser> _userManager;
    private readonly SignInManager<IdentityUser> _signInManager;
    private readonly IConfiguration _configuration;

    public AccountController(UserManager<IdentityUser> userManager, SignInManager<IdentityUser> signInManager, IConfiguration configuration)
    {
        this._userManager = userManager;
        this._signInManager = signInManager;
        this._configuration = configuration;
    }

    [HttpGet]
    public string Get()
    {
        return $"AccountController :: {DateTime.Now.ToShortDateString()}";
    }

    [HttpPost("Login")]
    public async Task<ActionResult<UserToken>> Login([FromBody] UserInfo userInfo)
    {
        var result = await _signInManager.PasswordSignInAsync(userInfo.Email, userInfo.Password, isPersistent: false, lockoutOnFailure: false);

        if (result.Succeeded)
        {
            return await GenerateTokenAsync(userInfo);
        }
        else
        {
            return BadRequest(new { message = "Login inválido" });
        }
    }

Eu também tenho o método de registro neste controlador, mas isso não vem ao caso.
O problema em que preciso de ajuda: no modo de desenvolvimento, todos os serviços funcionam (login, registro e um Get de teste, que retornam apenas uma string, acessada em "api/account"). No entanto, quando publico meu projeto, apenas esse serviço Get de teste funciona. Quando tento acessar a API de login, recebo uma resposta 404 Não encontrada.
Caso faça alguma diferença, aqui está a chamada do método de login:
@inject HttpClient http
@inject NavigationManager navigation
@inject TokenAuthenticationProvider authStateProvider
async Task FazerLogin()
{
    try
    {
        var loginAsJson = JsonSerializer.Serialize(userInfo);

        var httpResponse = await http.PostAsync("api/account/login", new StringContent(loginAsJson, Encoding.UTF8, "application/json"));

        if (httpResponse.IsSuccessStatusCode)
        {
            var responseAsString = await httpResponse.Content.ReadAsStringAsync();

            var loginResult = JsonSerializer.Deserialize<UserToken>(responseAsString, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });

            await authStateProvider.Login(loginResult.Token);
            navigation.NavigateTo("/");
        }
        else
        {
            loginFalhou = true;
            Mensagem = $"Não foi possível realizar o login do usuário. (Erro: {httpResponse.StatusCode})";
        }
    }
    catch (Exception)
    {
        loginFalhou = true;
        Mensagem = $"Não foi possível realizar o login do usuário...";
    }

}

Usei o método PostAsync para poder verificar se a requisição foi bem sucedida. Mas também tentei implementar a chamada do login desta forma:
async Task FazerLogin()
{
    try
    {
        var loginResult = await http.PostJsonAsync<UserToken>("/api/account/login", userInfo);

        await authStateProvider.Login(loginResult.Token);
        navigation.NavigateTo("/");
    }
    catch (Exception ex)
    {
        Console.Write(ex);
    }
}

O erro sempre permanece.

A única diferença que noto entre os serviços é que o serviço que funciona retorna apenas uma string. O login, o registro e outros controladores retornam uma Task>. Esse é o problema? Se sim, existe outra maneira de implementar o login?

A:

Eu resolvi o problema. Eu circundei o serviço de login com try catch e comecei a retornar o stacktrace. Com isso notei que o erro estava na string de conexão, pois eu não havia informado o login e a senha do banco de dados. Afinal, no modo de desenvolvimento não é necessário inserir o login e a senha do banco de dados, mas em produção isso é obrigatório. Obrigado a todos pelas dicas = D

