C# .Net Core 2.0视图';指数';找不到
我将.net core 2.0应用程序部署到IIS,并出现以下错误 InvalidOperationException:未找到视图“索引”。搜索了以下位置:/Views/Home/Index.cshtml/Views/Shared/Index.cshtml 这只是一个全新的默认.net核心web模板,我正在使用它来测试web部署。我已经尝试了下面的代码,但也不起作用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()
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_")]