Конечные точки не обнаруживаются в PageModel при публикации на IIS10: Http Response 404 .Net Core RazorPages - PullRequest
0 голосов
/ 14 января 2019

При отладке в IIS Express все конечные точки доступны через GET. При публикации в IIS10 я могу перейти к странице, на которой вызывается public void OnGet(), и отображает страницу бритвы. При вызове ./MyPage/Partial на сервере IIS10 я получаю сообщение об ошибке 404 Not Found, и это не происходит на IIS Express в Visual Studio.

 public class IndexModel : PageModel
    {
        [BindProperty]
        public MyModel MyModel { get; set; }

        [HttpGet]
        public void OnGet()
        {
            ...
        }

        [HttpGet]
        public IActionResult OnGetPartial([FromQuery] int id)
        {
            ...
        }
    }

Я следовал инструкциям на https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2, и я думаю, что мне нужно настроить эти маршруты согласно https://docs.microsoft.com/en-us/aspnet/core/razor-pages/razor-pages-conventions?view=aspnetcore-2.2

Хотя мой вопрос заключается в том, почему в IIS Express я могу вызвать javascript jquery $.load('./MyPage/Partial?id=1'), и он работает нормально, а при публикации возвращает ошибку 404? И какое было бы конкретное решение?

РЕДАКТИРОВАТЬ: в моем Index.cshtml вверху есть @page "{handler?}" Для обработки пользовательских методов REST.

1 Ответ

0 голосов
/ 15 января 2019

Чтобы решить эту проблему, я следовал инструкциям https://docs.microsoft.com/en-us/aspnet/core/razor-pages/razor-pages-conventions?view=aspnetcore-2.2 в файле Startup.cs или любом другом классе, который вы используете в Program.cs через

WebHost.CreateDefaultBuilder(args)
                .UseKestrel()
                .UseStartup<Startup>();

В методе в файле Startup.cs

public void ConfigureServices(IServiceCollection services)
{
   services.AddMvcCore().AddRazorPages(options => options.Conventions.AddPageRoute("/MyPage", "/MyPage/Partial/{id}")).AddRazorViewEngine().AddViews();

   // Other service code impl. here
}
...