2016-11-20 11 views
0

私のasp.netコアアプリケーションをwebserverに公開するために長い間戦った後、私はついにこれを行いました。Asp.netコアアプリケーションのインデックスメソッドが動作していません

public IActionResult Index(int page = 1) 
    { 
     ViewBag.Title = "Admin Panel"; 

     var model = new AdminViewModel() 
     { 
      Paging = new PaginationSettings() 
      { 
       ItemsPerPage = 4, 
       CurrentPage = page, 
       ShowFirstLast = true, 
       TotalItems = _newsData.GetAll().Count() 
      }, 
      Category = _newsData.GetAllCats() 

     }; 
     model.Newses = _newsData.Pagination(page); 


     return View(model); 
    } 

ブラウザでは500エラーが発生し、Webサイトが機能していないと表示されます。 誰かが喜んで返事をすることを知っている場合。 //編集: これは、ログファイルからのエラーです:

が警告:Microsoft.Extensions.DependencyInjection.DataProtectionServices [59] どちらもユーザープロファイルやHKLMレジストリが利用できます。短命キーリポジトリの使用。保護されたデータは、アプリケーションが終了すると利用できなくなります。 警告:Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository [50] インメモリリポジトリの使用。鍵はストレージに保存されません。

+0

コードをデバッグしようとしましたか? – agfc

+1

ログファイルからエラーメッセージを送信します。それがなければ、あなたを助けることは難しい – Tseng

+0

あなたのパブリッシュフォルダのビューですか? –

答えて

0

これはIISのバグで、DataProtectionを使用するアプリケーションがKestrel/IISの組み合わせでホストされている場合に発生します。あなたの一時的な鍵をマシンレジストリの代わりにメモリに入れているので、アプリケーションプールが停止したときにそれらがすべて破棄されます。

このバグの詳細については、hereです。この問題はサーバー上のrunning this PowerShell scriptによって解決されるようです。スクリプトin this GitHub threadについてもう少し詳しく読むことができます。

+0

を公開中ですが、私は、データ保護サービスを追加した後、それは仕事を開始しました: 「コード」services.AddDataProtection() .ProtectKeysWithDpapi(真) .PersistKeysToFileSystemを(新しいDirectoryInfo(@ "。\ Source \")); しばらく時間がかかりました。その間、私はサーバーのヘルプデスクに連絡していましたが、何もできませんでした。 –

関連する問題