2016-09-08 11 views
1

ASP.NET MVCコアプロジェクトを作成し、ビューを検索するためのカスタムフォルダを登録しました。私はこのようなカスタムIViewLocationExpanderクラスでこれをやった:Azureに公開した後にビューが見つかりません

public class AppsViewLocationExpander : IViewLocationExpander 
{ 
    public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, 
               IEnumerable<string> viewLocations) 
    { 
    yield return "/MyViewLocation/A/Views"; 
    //and so on... 
    } 

そしてStartup.csでこのクラスを使用:

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc(); 
    services.Configure<RazorViewEngineOptions>(options => 
    { 
     options.ViewLocationExpanders.Add(new AppsViewLocationExpander()); 
    }); 
} 

MyViewLocation/A /ビューフォルダの中にいくつかます* .cshtmlファイルとローカルデバッグセッションエラーなしで進行しました。 私はAzureにWebアプリケーションを公開しました。私は500 Internal Server Errorを取得しました。私はこのエラーをデバッグするためにVisual Studioを添付し、このメッセージを受け取りました:

System.InvalidOperationException:ビュー 'インデックス'が見つかりませんでした。次の場所を検索した:
/MyViewLocation/A/Views/Index.cshtml

を私が間違っていましたか? Views-Folderを別の場所に追加する必要がありますか?

EDIT
私は私の最初のセットアップで私のproject.jsonを変更しますが、これは私のAzureの問題には役立ちません。しかし、おそらく私のローカルデバッグ中にビューを見つける必要がありました。

"publishOptions": { 
    "include": [ 
    "wwwroot", 
    "Views", 
    "Areas/**/Views", 
    "MyViewLocation/**/Views", 
    "appsettings.json", 
    "web.config" 
    ] 
}, 

EDIT 2
私は、FTPサーバに手動で* .cshtmlファイルをアップロードしました。それでも彼らはまだ見つからない。

+0

ビューファイルがWebアプリケーションにデプロイされているか、欠落していますか? – DavidG

+0

@DavidG私はFTP上でそれらを見つけることができないので、私はちょっと見逃していると思う。展開スクリプトを変更する必要がありますか? – Koopakiller

+0

ビューファイルに設定されているビルドアクションは何ですか? (Visual Studioのファイルのプロパティ) – DavidG

答えて

4

System.InvalidOperationException:ビュー 'Index'が見つかりませんでした。次の場所が検索されました:/MyViewLocation/A/Views/Index.cshtml

エラーメッセージは、Azureに展開するといくつかのファイルが見つからないことを示しています。私は私のローカルでこのシナリオをテストしました、すべてのものが正常に動作します。この問題が発生した場合は、次のようにフォルダを再度公開することをお勧めします。 enter image description here

関連する問題