Establecer index.html como página predeterminada en asp.net core

¿Cómo puedo obtener asp.net core para servir un archivo index.html desde mi wwwroot?

La razón por la que quiero hacer esto es porque estoy desarrollando una aplicación angular 4 usando la CLI angular y se encarga de todo el proceso de compilación. Lo configuré para construir en el directorio wwwroot de mi proyecto asp.net core pero asp.net core no quiere servirlo.

Al principio intenté devolver el archivo html a través de un controlador. Probé esta ruta:

app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}");
    });

Y luego en el controlador devuelvo el archivo html de esta manera:

public IActionResult Index()
{
    var webRoot = _env.WebRootPath;
    var path = System.IO.Path.Combine(webRoot, "index.html");

    return File(path, "text/html");
}

Esto no funcionó. Devolvió una excepción 404 no encontrada y proporcionó la ruta, pero la ruta que dio fue la ruta correcta al archivo index.html (la corté y la pegué en el explorador y el archivo se abrió).

También estoy declarando estos en el inicio:

app.UseStaticFiles();
app.UseDefaultFiles();

Luego intenté eliminar la ruta predeterminada. Ahora puedo acceder al archivo index.html pero solo si escribo el nombre de archivo, es decir:

localhost: 58420 / index.html

Si intento acceder a la raíz del dominio sin el "index.html" especificado, aparece un error 404.

¿Cuál es la forma correcta de hacer referencia al index.html como la página predeterminada? Supongo que hacerlo desde un controlador probablemente sea mejor porque entonces será compatible con el enrutamiento angular sin reescrituras.

Respuestas a la pregunta(5)

Su respuesta a la pregunta