2017-01-10 2 views
2

Я опубликовал свой основной сайт asp на сайте smarteasp. Однако я обнаружил, что мой локальный db не был перенесен так, чтобы страницы, где требуется взаимодействие с db, дают мне ошибку. Затем я загрузил файл db .mdf и даже смог увидеть таблицы и данные на странице панели хостинга. Однако мой сайт по-прежнему работает некорректно в тех частях, где требуется взаимодействие с db (в то время как на моем локальном все работает правильно).ERROR_USER_NOT_AUTHORIZED_FOR_DBFULLSQL во время публикации

Итак, я решил изменить параметр публикации Web Deploy для включения «Применить эту миграцию при публикации» и выбрать мою миграцию с именем «Initial». Тогда даже в меню предварительного просмотра все выглядит правильно.

Однако, когда я нажимаю кнопку публикации, я получаю ERROR_USER_NOT_AUTHORIZED_FOR_DBFULLSQL. Я искал много ссылок, связанных с этой ошибкой, включая официальные https://www.iis.net/learn/publish/troubleshooting-web-deploy/web-deploy-error-codes#ERROR_USER_NOT_AUTHORIZED_FOR_DBFULLSQL, но никто из них не дает мне понимания источников и решения этой ошибки.

Так что мой основной вопрос - как решить эту ошибку. Кроме того, я хотел бы знать, может ли включение миграции во время веб-развертывания решить проблему, описанную в первом абзаце.

+1

Это похоже, что у вас нет разрешения на применение миграции (разрешения пользователя chceck). Я рекомендую сделать файл * .bak вашей БД, а затем повторить его на своем хостинге –

+0

Спасибо за ответ! Но я не знаю, где искать эти разрешения. Также * .bak-файл, созданный хостом автоматически при загрузке файла mdf. Я неоднократно воссоздавал свой db на хосте, но это не помогает. – Bogdan

+1

Я хочу создать * .bak локально, а затем загрузить на хостинг SQL –

ответ

0

В appsettings.json Я изменил DefaultConnection строку в один, который представляет настройки базы данных хоста включая пароль (не забудьте, чтобы установить его в этой строке после того, как ваш хост предоставить его вам, как он часто пишет ***** или YOUR_PASSWORD, где должен быть установлен ваш пароль). Так оно и должно выглядеть

"DefaultConnection": "Some code that your host should give to you;MultipleActiveResultSets=True;" 

Также я ставлю эту строку (Withot DefaultConnection), когда я публикую в флажке базы данных.

0

Самым большим недостатком этой ошибки является описание сообщения об ошибке. Если вы попытаетесь прочитать связанные сообщения, вы обязательно пойдете по неверному пути. Я попытался настроить права пользователей на всем моем сайте Azure безрезультатно.

Проблема на самом деле довольно легко реплицироваться. Если вы удалите профиль веб-развертывания, а затем опубликуйте его, создав профиль с помощью кнопки Microsoft Azure App Service, вы столкнетесь с этой ошибкой.

Попытка опубликовать Azure с DefaultConnection установлен в локальной строке подключения, вы получите сообщение об ошибкеERROR_USER_NOT_AUTHORIZED_FOR_DBFULLSQL

Server=(localdb)\mssqllocaldb;Database=aspnet-WebApplication1;Trusted_Connection=True;MultipleActiveResultSets=true 

Таким образом, решение это пойти на Azure и скопировать правильную соединительную строку и обновите свой профиль. Я попросил техническую поддержку Microsoft обновить веб-страницу с описанием ошибки или, в лучшем случае, добавить новый код ошибки.

Смежные вопросы