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包並再次發佈我的文件夾。

這就是它的工作原理。

希望它能幫助面臨類似問題的人。