У меня есть веб-API ASP.Net Core 2.1, который без проблем подключается к Azure SQL Server для резервного хранилища данных.
В настоящее время я пытаюсь настроить Serilog, чтобы он записывал ошибки в таблицу «ApiLog» в моей базе данных Azure SQL Server.Я использую приемник MSSqlServer для Serilog и следую настройке, описанной в этом блоге .Я использую следующий код в моем Program.cs, чтобы увидеть любые ошибки Serilog:
Serilog.Debugging.SelfLog.Enable(msg =>A
{
Debug.Print(msg);
Debugger.Break();
});
... и получаю эту ошибку;
Unable to write 1 log events to the database due to following error: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host
У меня нет проблем с подключениемк серверу Azure SQL Server (тот же сервер и база данных, но разные таблицы базы данных) в классах контекста БД моего API, поэтому я не уверен, в чем проблема.Я использую ту же учетную запись SQL для подключения к контексту БД, что и для Serilog.
Вот мой раздел writeto в appsettings.json;
"WriteTo": [
{
"Name": "MSSqlServer",
"Args": {
"connectionString": "Server=<server name in Azure>.database.windows.net,1433;Initial Catalog=Logs;Persist Security Info=False;User ID=<SQL account name>;Password=<Sql Account Password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
"tableName": "ApiLog"
}
},
Я даже попытался установитьИдентификатор пользователя и пароль пользователя для входа в систему SA в качестве теста и получили ту же ошибку, поэтому я не думаю, что это может быть проблема с разрешениями SQL Server.
Итак, мне интересно ... это приемник Serilog MSSqlServerна самом деле поддерживается с Azure SQL Server?До сих пор я не смог найти в интернете ничего конкретного, что бы так или иначе говорило.
Есть идеи?