发布期间ERROR_USER_NOT_AUTHORIZED_FOR_DBFULLSQL

时间:2017-01-10 13:31:03

标签: asp.net asp.net-mvc asp.net-core asp.net-core-mvc

我已经在smarteasp托管上发布了我的asp核心网站。但是我发现问题是我的本地数据库没有被转移,因此页面需要与db的交互,给我一个错误。然后我上传了我的db .mdf文件,甚至能够在托管面板页面上看到表格和数据。但是,在需要与db进行交互的那些部分中,我的网站仍然无法正常工作(在我的本地所有工作都正确)。

所以我决定更改我的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,但没有人给我任何理解此错误的来源和解决方案。

所以我的主要问题是如何解决此错误。另外,我想知道在Web部署期间是否包含迁移可以解决我在第一段中描述的问题。

4 个答案:

答案 0 :(得分:1)

此错误的最大问题是错误消息的描述。如果你试图阅读链接的消息,你肯定会走错路。我试图在我的Azure站点上设置用户权限无济于事。

问题实际上很容易复制。如果删除Web部署配置文件,然后让发布使用Microsoft Azure App Service按钮创建配置文件,则会遇到此错误。

尝试在将DefaultConnection设置为本地连接字符串的情况下发布到Azure,您将收到 ERROR_USER_NOT_AUTHORIZED_FOR_DBFULLSQL 错误消息

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

因此,解决方案是转到Azure并复制正确的连接字符串并更新您的配置文件。我已经要求Microsoft技术支持人员更新描述错误的网页,或者最多添加一个新的错误代码。

答案 1 :(得分:1)

在使用msdeploy将Web部署程序包发布到Azure时遇到了此错误。该错误是由于在文件.SetParameters.xml中使用了错误的连接字符串引起的。参数文件中使用了连接参数名称为“ -Web.config连接字符串”的连接字符串。但是,此连接字符串适用于Web应用程序本身。使用以“ -Deployment Connection String”结尾的参数名称设置部署连接字符串后,该错误已解决。

答案 2 :(得分:0)

appsettings.json 中,我将DefaultConnection字符串更改为代表主机数据库设置的字符串,包括密码(不要忘记来设置它在你的主机提供给你之后,在这个字符串中,因为他经常写*****或YOUR_PASSWORD你应该放置密码)。所以它应该看起来像

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

当我在数据库中发布复选框时,我也把这个字符串(Withot DefaultConnection)。

答案 3 :(得分:0)

确保不部署迁移。迁移需要完全的数据库控制。