Строка подключения, сгенерированная VS, не работает - PullRequest
0 голосов
/ 13 апреля 2019

Я развертываю веб-приложение с использованием IIS и ASP.NET CORE.Я установил файл «appsetting.json», который включает строку подключения к серверу sql.Пока что все варианты, которые я пробовал, не работали.Странная вещь в том, что он отлично работает на моем локальном компьютере, но когда я его развертываю и отправляю HTTPPost, в файле журнала появляется сообщение об ошибке при подключении к базе данных на сервере.

Ну, я пыталсявсе варианты, которые я мог придумать.Текущая строка подключения, сгенерированная Visual Studio:

Источник данных = (localdb) \ MSSQLLocalDB; Первоначальный каталог = Своп; Интегрированная защита = Истина; Тайм-аут соединения = 30; Шифрование = Ложь;TrustServerCertificate = False;ApplicationIntent = ReadWrite; MultiSubnetFailover = False

Я пытался изменить "Интегрированную безопасность" на False.Я пытался заменить его на идентификатор пользователя и пароль (пользователя "sa").Я попытался добавить свойство «Initial Catalog» и установить его в своей базе данных.

Я не уверен, что запуск приложения в порядке, потому что, когда я пытаюсь отправить запрос GET на главную страницувсе вроде нормально.Когда я отправляю запрос POST и запрашиваю DBcontext для Add и SaveChanges, он показывает эту ошибку:

fail: Microsoft.EntityFrameworkCore.Database.Connection [20004] Произошла ошибка при подключении к базе данных 'Поменяйте местами 'на сервере
' (localdb) \ MSSQLLocalDB '.

Это функция, с которой я пытался отправить запрос HTTPPost по адресу:

byte[] j = new byte[(int)Request.ContentLength];
Request.Body.Read(j, 0, (int)Request.ContentLength);
string str = Encoding.ASCII.GetString(j);
TokenSet tokenSet = new TokenSet {Token = str };
sqlTokensetData.Add<TokenSet>(tokenSet);
sqlTokensetData.SaveChanges();
HttpClient notificationSender = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, 
"https://fcm.googleapis.com/fcm/send");

request.Headers.TryAddWithoutValidation("Authorization", "key=" 
<somekey>);

request.Headers.TryAddWithoutValidation("Sender", "id=<id>");
Message pushNotification = new Message(new string[] { str }, "Success!" 
<somestring>);

request.Content = new 
StringContent(JsonConvert.SerializeObject(pushNotification)
,Encoding.UTF8,"application/json");

HttpResponseMessage output = await notificationSender.SendAsync(request);

Ошибка файла журнала: https://anotepad.com/notes/9a8jxa

Я надеюсь, что строка "str" ​​будет вставлена ​​в базу данных.Спасибо.

1 Ответ

0 голосов
/ 14 апреля 2019

Ну, в принципе, благодаря комментариям выше, мне удалось решить.Что нужно сделать, если вы столкнулись с той же ошибкой: 1. Загрузите SQL Server Express - https://www.microsoft.com/en-us/sql-server/sql-server-editions-express, как указано выше.и настройте SQL Server так, как считаете нужным.2. Настройте пользователя sa, установите пароль и включите его.3. Если аутентификация SQL не работает, то в Microsoft SQL Server Management Studio -> щелкните правой кнопкой мыши сервер -> Свойства -> Аутентификация сервера -> Изменить на SQL Server и Аутентификация Windows 4. Измените строку подключения на:

Источник данных =; Исходный каталог = ID пользователя = sa;Password =;Время ожидания соединения = 30; Encrypt = False; TrustServerCertificate = False;ApplicationIntent = ReadWrite; MultiSubnetFailover = False

Это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...