2016-11-20 12 views
0

После долгого боя опубликовать мое основное приложение asp.net на веб-сервере, я, наконец, сделал это, и теперь все работает рядом с методом индекса из контроллера администратора, который указан как значение по умолчанию.Не работает метод индекса в основном приложении 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 ошибок и говорит, что сайт не работает. Если кто-нибудь знает, что делать, пожалуйста, ответьте. // Edit: Это ошибка из логфайла:

предупреждает: Профиль 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 (new DirectoryInfo (@ ". \ Source \")); Я не уверен, потому что это заняло некоторое время. Тем временем я обращался к серверной службе поддержки, но они ничего не могли сделать. –