0

我最近将我的ASP.NET Core MVC项目迁移到ASP.NET Core 2.0。该Web应用程序已使用Visual Studio 2017版本15.3预览进行迁移。ASP.NET Core 2.0 webApp在发布到iis后显示'查找索引未找到...'

应用程序工作正常的发展模式(无论是从Visual Studio和使用控制台DOTNET运行),但是当我发布和IIS(第10版)主办,它抛出和错误说:

未找到'索引'视图。以下地点搜索: /Areas/Admin/Views/Shared/Home/Index.cshtml ...

注:我有一个自定义的路由配置,其中的观点是使用自定义ViewLocationExpander

配置

这是我的项目结构是什么样子:

enter image description here

的事情,我已经试过有:

在的.csproj:

<PreserveCompilationContext>true</PreserveCompilationContext> 

在Program.cs中:

.UseContentRoot(Directory.GetCurrentDirectory()) 

如下我已配置RazorViewEngineOptions:

enter image description here

包括.csproj的下面也没有工作:

<ItemGroup> 
    <Content Update="wwwroot\**\*;**\*.cshtml;appsettings.json;web.config"> 
     <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> 
    </Content> 
</ItemGroup> 

如果我尝试手动包括.cshtml文件,它会引发重复性错误。

我已经经历了大量的文章和官方的github链接,但没有任何工作。

我在这里错过了什么吗?任何建议将不胜感激 !!

+0

为避免混淆,请避免使用过时(MVC 6)或混淆术语(当您实际谈论.NET Core上运行的ASP.NET Core时,DotNetCore/.NET Core)。 ASP.NET Core是用于创建WebAppatino的Webstack。 .NET Core是**运行时**,可以在其上运行ASP.NET Core 1.x/2.x的**两个**之一。另一个是完整的.NET Framework – Tseng

+0

当然。我认为一个普通的.Net开发者会理解,没有任何困惑。我甚至包括标签以防发生。任何方式,谢谢。 – Ozesh

+0

它曾经被称为MVC6和ASP.NET 5,但它的确期望成为ASP.NET 4.5和MVC 5的继任者,事实并非如此。这是一个全新的重写,它与旧的ASP.NET/MVC5 webstack不兼容。话虽如此,还是有一个真正的MVC6(基于MVC5)的机会,所以仍然调用ASP.NET Core“MVC6”最终会变得双重混淆 – Tseng

回答

1

我终于解决了。

首先,我必须包括因为我的意见分布结构中的PropertyGroup在.csproj的文件

<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish> 

它必须是以下。

我不知道为什么,但我也不得不在发布我的应用程序后单独发布我的视图文件夹(视图和区域)。

注:包括在.csproj的用于发布并没有帮助

发表我的意见后,浏览文件夹,它给了在浏览器中说 无法为包找到编译库的位置“的Microsoft.Win32错误.Registry'

因此,我不得不安装Microsoft.Win32.Registry包并再次发布我的文件夹。

这就是它的工作原理。

希望它能帮助面临类似问题的人。