我将.net core 2.0应用程序部署到IIS,并收到以下错误。
无效操作异常错误:未找到视图'Index'。搜索了以下位置:/视图/主页/索引.cshtml /视图/共享/索引.cshtml
这只是一个全新的默认。net核心网页模板,我正在使用测试网页部署。我已经尝试了下面的代码,但也不工作。
public static void Main(string[] args)
{
new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.Build()
.Run();
}
我有没有漏掉什么
堆栈跟踪:
消息无效操作异常:未找到视图'Index'。搜索了以下位置:/视图/主目录/索引.cshtml /视图/共享/索引.cshtml
InvalidOperationException: The view 'Index' was not found. The following locations were searched: /Views/Home/Index.cshtml /Views/Shared/Index.cshtml
Microsoft.AspNetCore.Mvc.ViewEngines.ViewEngineResult.EnsureSuccessful(IEnumerable<string> originalLocations)
Microsoft.AspNetCore.Mvc.ViewResult+<ExecuteResultAsync>d__26.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+<InvokeResultAsync>d__19.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+<InvokeNextResultFilterAsync>d__24.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResultExecutedContext context)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+<InvokeNextResourceFilter>d__22.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+<InvokeFilterPipelineAsync>d__17.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker+<InvokeAsync>d__15.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Builder.RouterMiddleware+<Invoke>d__4.MoveNext()
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware+<Invoke>d__7.MoveNext()
6条答案
按热度按时间velaa5lx1#
在我的案例中,我使用ASP.NET Core MVC和VS2017,我已经将
Index.cshtml
的构建操作设置为Content
,但仍然出现错误。最后我猜测页面有问题,于是我复制了
Index.cshtml
的内容,删除Index.cshtml
,重新启动Visual Studio,然后我Right click on the Folder > Add > View > Give the file name Index
,添加新的空页面后,粘贴复制的内容,再次运行,问题解决了。bvn4nwqk2#
以防有人对我的决议感兴趣:
这是.net core的IIS插件和我使用的.net core版本的问题。我使用的是.net core的预览版本,但我没有将.netcore模块更新为正确的版本
2g32fytz3#
我在从.Net Core 2.2迁移到Net Core 3.0时遇到了这个错误,Dblock247的回答启发我检查NuGet包。
我发现项目中同时引用了.Net Core 2.2和.Net Core 3.1软件包。许多.Net Core 2.2软件包没有相应的.Net Core 3.1软件包。一旦我删除了.Net Core 2.2软件包,我的应用程序就开始工作了。
下面是我在迁移到.Net Core 3.1时所做的其他更改,以防上面的建议对您不起作用。
我还从
IWebHost
迁移到了IHostBuilder
,这相当简单,因为IHostBuild
似乎将IWebHost
Package 成了Func
。我做的下一个更改是从
AddMvc
移到AddControllers
,其中包括调用新的AddNewtonsoft
方法。最后,在Configure方法中,我添加了新的
UseAuthentication
、UsingRouting
、UseEndpoints
和UseAuthorization
:nfs0ujit4#
在我的例子中,我正在处理区域,所以我没有在控制器中定义区域
正在添加
在控制器中的类解决我的问题之前。
o3imoua45#
在我的情况下,它是这个选项。在设置它从“不复制”的值到任何选项的“复制...”一切工作的预期。截图是从JetBrains骑士,这是我的
Index.cshtml
的属性此操作将此ItemGroup添加到项目文件中:
ubbxdtey6#
我也面临着类似的问题,花了很长时间来修复...解决方案是在.csproj如果任何视图是与删除,然后删除这些条目,并包括这些视图到项目在解决方案资源管理器...然后实际的修复只是添加一个测试视图viewfile index 3. cstml,并使其从行动调用,然后部署所有工作良好。稍后可以删除该额外的视图文件。100%它的工作。