C# .Net Core 2.0视图';指数';找不到

C# .Net Core 2.0视图';指数';找不到,c#,iis,asp.net-core-2.0,C#,Iis,Asp.net Core 2.0,我将.net core 2.0应用程序部署到IIS,并出现以下错误 InvalidOperationException:未找到视图“索引”。搜索了以下位置:/Views/Home/Index.cshtml/Views/Shared/Index.cshtml 这只是一个全新的默认.net核心web模板,我正在使用它来测试web部署。我已经尝试了下面的代码,但也不起作用 public static void Main(string[] args) { new WebHostBuilder()

我将.net core 2.0应用程序部署到IIS,并出现以下错误

InvalidOperationException:未找到视图“索引”。搜索了以下位置:/Views/Home/Index.cshtml/Views/Shared/Index.cshtml

这只是一个全新的默认.net核心web模板,我正在使用它来测试web部署。我已经尝试了下面的代码,但也不起作用

public static void Main(string[] args)
{
    new WebHostBuilder()
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseStartup<Startup>()
        .Build()
        .Run();
}
publicstaticvoidmain(字符串[]args)
{
新WebHostBuilder()
.UseKestrel()
.UseContentRoot(目录.GetCurrentDirectory())
.UseStartup()
.Build()
.Run();
}
有没有我要遗漏的步骤

堆栈跟踪:

信息 InvalidOperationException:未找到视图“索引”。搜索了以下地点: /Views/Home/Index.cshtml /视图/Shared/Index.cshtml Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable originalLocations)

InvalidOperationException:未找到视图“索引”。搜索了以下位置:/Views/Home/Index.cshtml/Views/Shared/Index.cshtml
Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable originalLocations)

Microsoft.AspNetCore.Mvc.ViewResult+d_u26.MoveNext()

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()异常

System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务)

Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+d_u19.MoveNext()

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()异常

System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务)

Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+d_u24.MoveNext()

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()异常

Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResultExecutedContext)

Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(ref State Next、ref Scope Scope、ref object State、ref bool isCompleted)

Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+d_u22.MoveNext()

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()异常

Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext)

Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(ref State Next、ref Scope Scope、ref object State、ref bool isCompleted)

Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+d_u17.MoveNext()

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()异常

System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务)

Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+d_u15.MoveNext()

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()异常

System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务)

Microsoft.AspNetCore.Builder.RouterMiddleware+d_u4.MoveNext()

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()异常

System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务)

Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware+d_u7.MoveNext()


在我的例子中,我在VS2017中使用ASP.Net核心MVC,我已经将
Index.cshtml
的构建操作设置为
Content
,但仍然出现错误


最后,我猜页面中有问题,所以我复制了
Index.cshtml
的内容,删除
Index.cshtml
并重新启动Visual Studio。然后我用鼠标右键单击文件夹>添加>查看>指定文件名索引,添加新的空白页后,粘贴复制的内容,然后再次运行,问题就解决了。

以防有人对我的解决方案感兴趣:


这是针对.net core的IIS插件和我使用的.net core版本的问题。我使用的是.net core的预览版本,没有将.net core模块更新到正确的版本

我在从.net core 2.2迁移到net core 3.0时遇到了这个错误,Dblock247的回答启发我检查NuGet包

我发现项目中引用了.NETCore2.2和.NETCore3.1包。许多.Net Core 2.2包没有相应的.Net Core 3.1包。一旦我删除了.NETCore2.2包,我的应用程序就开始工作了

下面是我在迁移到.Net Core 3.1时所做的其他更改,以防上述建议对您不起作用

我还从
IWebHost
迁移到
IHostBuilder
。这相当容易,因为
IHostBuild
似乎将
IWebHost
包装成一个
Func

我做的下一个更改是从
AddMvc
移动到
AddControllers
,其中包括调用新的
AddNewtonsoft
方法

        services.AddControllers(options =>
        {
            options.EnableEndpointRouting = false;

        })
        .AddNewtonsoftJson(options => {
            options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
        });
最后,在Configure方法中,我添加了新的
UseAuthentication
UsingRouting
UseEndpoints
,以及
UseAuthorization

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


        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();

            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");

            endpoints.MapRazorPages();
        });

在我的情况下,我是在这个地区工作 因此,我没有在控制器中定义区域

添加

    [Area("_AreaName_")]

上课前,Controller解决了我的问题。

Index.cshtml在哪里?它位于主文件夹中。NETCore还有一个www文件夹。我不确定visual studio是否要将文件复制到那里?它的布局与创建新的.net核心web应用程序的布局相同。除上述内容外,未涉及任何内容。不确定设置是否应指定
UseIISIntegration
,而不是
UseKestrel
@RahulAgarwal,因为它无法解决我的问题,我得到了相同的结果error@MattThomas是的,我使用的.net core的IIS插件和.net core版本存在问题。我使用的是.net core的预览版本,没有将.net core模块更新到正确的版本。我遇到了这个错误
    [Area("_AreaName_")]