База данных Azure работает на локальном хосте, но не при использовании с сервисным приложением azure - PullRequest
0 голосов
/ 22 апреля 2020

Итак, я пытался опубликовать sh мой первый проект на azure. У меня есть все настройки, сервисное приложение и база данных sql.

Моя начальная страница загружается правильно (это стандартное представление для основного веб-приложения. net).

Первое, что мне нужно сделать, это зарегистрировать нового пользователя. Всякий раз, когда я пытаюсь выполнить приложение azure (myapp.azurewebsites. net), оно выходит из строя, и в журналах указывается, что оно связано с БД.

Однако я пытаюсь сделать то же самое, запустив приложение на своем компьютере в производственной среде. , снова подключен к azure sql серверу и все работает отлично. Я могу регистрировать пользователей, я могу создавать сообщения, я могу редактировать их. Опция allow access to azure services включена. Эта ошибка из журналов событий. Я не включил трассировку стека.

Category: Microsoft.EntityFrameworkCore.Query EventId: 10100 RequestId: 800001be-0000-ba00-b63f- 
84710c7967bb RequestPath: /Identity/Account/Register SpanId: |1e5a93ae-43f424904f38ea9f. TraceId: 
1e5a93ae-43f424904f38ea9f ParentId: ActionId: c3430236-e61c-4785-a3c3-4f60ba115b6e ActionName: 
/Account/Register An exception occurred while iterating over the results of a query for context type 
'MyApp.Data.ApplicationDbContext'. Microsoft.Data.SqlClient.SqlException (0x80131904): Server 
name cannot be determined. It must appear as the first segment of the server's dns name 
(servername.database.windows.net). Some libraries do not send the server name, in which case the 
server name must be included as part of the user name (username@servername). In addition, if both 
formats are used, the server names must match.

Это разные способы, которыми я пытался добавить строку подключения в файл appsettings. json. (Имя сервера, каталог, пользователь и пароль были заменены, они правильно записаны в файле настроек приложения)

Server=tcp:servername.database.windows.net,1433;Initial Catalog=db;Persist Security Info=False;
User ID=user@server;Password=mypassword;
MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Server=tcp:servername.database.windows.net,1433;Initial Catalog=db;Persist Security Info=False;
User ID=user;Password=mypassword;
MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Data Source=tcp:server.database.windows.net,1433;
Initial Catalog=db;User Id=@server.database.windows.net;Password=password;

1 Ответ

0 голосов
/ 22 апреля 2020

Хорошо, так что через полтора дня мне наконец-то удалось это исправить. Решение довольно простое, и, скорее всего, это моя новая ошибка ie, которая вызвала столько проблем.

Я следовал руководству по настройке приложения и соединения с базой данных после этого. В руководстве использовалась строка подключения, которая использовалась по умолчанию и была найдена в «myApp -> Конфигурация -> Строки подключения», формат был:

Data Source=tcp:server.database.windows.net,1433;
Initial Catalog=db;User Id=@server.database.windows.net;Password=password;

Этот работал в руководство, но не для меня. Так что я сделал go для моего «sqldb -> строки подключения» и скопировал предоставленный там. Затем я вернулся к конфигурации приложения и добавил ее в качестве новой строки конфигурации, используя SqlServer в качестве Типа.

Эта строка была в формате:

Server=tcp:servername.database.windows.net,1433;Initial Catalog=db;Persist Security Info=False;
User ID=user;Password=mypassword;
MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

После этого приложение запустилось работает правильно.

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