Проблема с развертыванием в ASP.NET Ядро (ошибка 403-запрещенный доступ)

#c# #asp.net #asp.net-core

#c# #asp.net #asp.net-core

Вопрос:

При загрузке моего asp.net веб-сайт ядра размещен на хостинге plesk, появляется ошибка 403-запрещенный доступ. Как это можно решить?

В ASP.Net MVC5 мы используем <customErrors mode="Off"> для проверки на наличие ошибок. Но как включить страницу ошибки в ASP.Net ядро?

Вот код для моего appsettings.json:

 {
    "ConnectionStrings": {
        "DefaultConnection": "Data Source=.MSSQLSERVER2016;Initial Catalog=GraniteHouses;User ID=coretest;Password=0!6Qcdr8;Connect Timeout=15;Encrypt=False;Packet Size=4096; Persist Security Info=True; MultipleActiveResultSets=True"
    },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}
  

Я ожидаю, что мой веб-сайт будет работать.

Комментарии:

1. Я бы начал с использования SQL Server Management Studio, и очень скоро вы сможете подключиться к базе данных с именем пользователя и паролем в вашей строке подключения. Проверьте окно входа, чтобы увидеть, используются ли учетные данные Windows или используются учетные данные SQL. Я подозреваю, что вам нужно будет использовать учетные данные Widow, но не уверен.

2. Спасибо за ваш ответ. Как это сделать на реальном хостинге? Мой веб-сайт не работает на реальном хостинге. На локальном компьютере все работает нормально.

3. Я думаю, что runAllManagedModulesForAllRequests = true. Не уверен. найдено много обращений, в которых говорится, что это решило проблему 403 в IIS.

Ответ №1:

Я предполагаю, что Plesk установлен в Windows, поскольку ASP.NET Ядро не поддерживается на сервере Linux Plesk

Пакет развертывания должен содержать web.conig пакет, который выглядит примерно так:

 <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".logsstdout" forwardWindowsAuthToken="false"/>
  </system.webServer>
</configuration>
  

Вы можете установить stdoutLogEnabled значение true, тогда журналы будут записываться в эту .logs папку (возможно, вам потребуется создать эту папку / предоставить разрешения на запись).

Это поможет вам получить ошибку

Комментарии:

1. Спасибо за ваш ответ. Я не могу найти пакет web.config нигде на моем хостинге. Помогите мне, пожалуйста

2. В Visual Studio щелкните правой кнопкой мыши на вашем веб-проекте, появится команда опубликовать, щелкните по ней и выберите Опубликовать в локальной системе (или что-то в этом роде). Это будет пакет, который вы должны развернуть на своем веб-сервере, и этот пакет будет содержать Web.config