Voli
Voli

Reputation: 29

.net 6.0 mvc app shows wwwroot folder directory listing instead of my application when I run the app

When I'm trying to run my project - dot net core version 6 - it shows me the wwwroot folder listing instead of running the app, I have tried to uncheck the launch browser from the debug profile of the project but it's still the same and I have tried to set the working directory path myself to the location of the project's folder ; here is my project file folder

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <UserSecretsId>aspnet-DrGhareebPanel-58e776cf-ea5c-4749-a179-d99017aeaac5</UserSecretsId>
    <ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
    <PreserveCompilationContext>true</PreserveCompilationContext>
    <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
<RazorCompileOnPublish>false</RazorCompileOnPublish>
<CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory>
  <ResourceLanguages>en</ResourceLanguages>
      <SatelliteResourceLanguages>en-US;en</SatelliteResourceLanguages>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="6.0.16" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.16" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="6.0.16" />
    <PackageReference Include="Microsoft.Data.SqlClient" Version="5.1.5" />
    <PackageReference Include="Microsoft.DotNet.Scaffolding.Shared" Version="6.0.16" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.16" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.16" ExcludeAssets="All">
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.16" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.16">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.16" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGenerators.Mvc" Version="6.0.16" />
  </ItemGroup>
  <ItemGroup>
    <Content Update="appsettings.Development.json">
      <CopyToOutputDirectory>Never</CopyToOutputDirectory>
    </Content>
    <Content Update="appsettings.json">
      <CopyToOutputDirectory>Never</CopyToOutputDirectory>
    </Content>
    <Content Update="Areas\Identity\Pages\Account\Login.cshtml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Update="Areas\Identity\Pages\Account\Register.cshtml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Update="Areas\Identity\Pages\Account\_IdentityLayout.cshtml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Update="Areas\Identity\Pages\Account\_ViewImports.cshtml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Update="Areas\Identity\Pages\_ValidationScriptsPartial.cshtml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Update="Areas\Identity\Pages\_ViewImports.cshtml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Update="Areas\Identity\Pages\_ViewStart.cshtml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\AboutUs\Index.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\Appointments\Delete.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\Appointments\Details.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\Appointments\Index.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\ContactUs\Delete.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\ContactUs\Details.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\ContactUs\Index.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\HomePage\Index.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\HomePage\Privacy.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\Shared\Error.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\Shared\_Layout.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\Shared\_LoginPartial.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\Shared\_ValidationScriptsPartial.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\_ViewImports.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
    <Content Update="Views\_ViewStart.cshtml">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Data\Migrations\" />
  </ItemGroup>
  <ItemGroup>
    <Compile Update="Areas\Identity\Pages\Account\Login.cshtml.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="Program.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <None Update="Areas\Identity\Pages\Account\_IdentityLayout.cshtml.css">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>
  <Import Project="..\Common\Common.projitems" Label="Shared" />
</Project>

and this is my program.cs file:

            var app = builder.Build();
            if (app.Environment.IsDevelopment())
            {
                app.UseDirectoryBrowser();
                app.UseMigrationsEndPoint();
            }
            else
            {
                app.UseDirectoryBrowser();
                app.UseExceptionHandler("/HomePage/Error");
                app.UseHsts();
            }
            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthentication();
            app.UseAuthorization();

            app.MapControllerRoute(
                name: "default",
                pattern: "{controller=AboutUs}/{action=Index}/{id?}");
            app.MapRazorPages();
            app.Run();
        }
    }
}

and this is the result: enter image description here

and thanks in advance to anyone helping

Upvotes: 0

Views: 301

Answers (1)

Tiny Wang
Tiny Wang

Reputation: 16066

Using app.UseDirectoryBrowser(); makes you enable directory browser feature.

Commentt that link would solve the issue.

enter image description here

In the meantime, if you still want to keep the directory browser enabled, then we can cover the default route for directory browser, like what the document demonstrated. Then when the default home page(localhost:port/) is hit, it won't go to directory browser page, and will go to the AboutUs controller index method.

var requestPath = "/MyImages";
app.UseDirectoryBrowser(new DirectoryBrowserOptions
{
    RequestPath = requestPath
});

enter image description here

Upvotes: 1

Related Questions