网络部署 - DACPAC/XML 输出 [英] Web Deploy - DACPAC / XML Output

查看:28
本文介绍了网络部署 - DACPAC/XML 输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试部署 Web 应用程序.我可以很好地部署网站部分,但是不会部署 SQL 数据库.我在开发机器上的 VS2012 中收到的错误是:

错误 24 Web 部署任务失败.((5/6/2014 1:36:23 PM)在远程计算机上处​​理请求时出错.)

(5/6/2014 1:36:23 PM) 在远程计算机上处​​理请求时出错.服务器在处理请求时遇到问题.有关详细信息,请联系服务器管理员.

在 web/sql 服务器上,事件日志给出:

*User: 
Client IP: 192.168.254.122
Content-Type: application/msdeploy
Version: 9.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 9.0.1762.0
MSDeploy.Method: Sync
MSDeploy.RequestId: ea61751c-29cf-4764-8ad3-210cedc8fa53
MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US
ServerVersion: 9.0.1762.0
Skip: objectName="^configProtectedData$"
Provider: auto, Path: 
A tracing deployment agent exception occurred that was propagated to the client. Request ID 'ea61751c-29cf-4764-8ad3-210cedc8fa53'. Request Timestamp: '5/6/2014 1:36:13 PM'. Error Details:
ERROR_CANNOT_PROCESS_DACPAC_OUTPUT Microsoft.Web.Deployment.DeploymentDetailedException: The output received from executing dacpac in a seperate process was not valid xml.  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CANNOT_PROCESS_DACPAC_OUTPUT. ---> 

        System.Xml.XmlException: Data at the root level is invalid. Line 19, position 10.
           at System.Xml.XmlTextReaderImpl.Throw(Exception e)
           at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
           at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
           at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
           at System.Xml.XmlDocument.Load(XmlReader reader)
           at System.Xml.XmlDocument.LoadXml(String xml)
           at Microsoft.Web.Deployment.SqlDacPacProvider.ProcessExeOutput()
           --- End of inner exception stack trace ---
           at Microsoft.Web.Deployment.SqlDacPacProvider.ProcessExeOutput()
           at Microsoft.Web.Deployment.SqlDacPacProvider.RunExecutableAsync(String exeName, String arguments, Int32 waitInterval, Int32 retryAttempts)
           at Microsoft.Web.Deployment.SqlDacPacProvider.Add(DeploymentObject source, Boolean whatIf)
           at Microsoft.Web.Deployment.DeploymentObject.Add(DeploymentObject source, DeploymentSyncContext syncContext)
           at Microsoft.Web.Deployment.DeploymentSyncContext.HandleAdd(DeploymentObject destObject, DeploymentObject sourceObject)
           at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildren(DeploymentObject dest, DeploymentObject source)
           at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
           at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
           at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable`1 syncPassId, String syncSessionId)
           at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable`1 passId)
           at Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData)
           at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData)*

当我从 VS2012 为 SQL 数据库测试连接"时,它工作得很好,所以我知道这不是连接/身份验证问题.看起来 dacpac 文件使用的 XML 版本可能有误?如果没有人有办法修复给出的错误,有没有办法让我手动部署数据库?

推荐答案

我遇到了这个问题,最后变成了权限问题.

I had this problem, and it ended up being a permissions issue.

用户只有 db_datareader、db_datawriter 和 execute.

The user only had db_datareader, db_datawriter, and execute.

我需要给 SSDT 用户 db_owner,然后我才能克服这个错误.

I needed to give the SSDT user db_owner, then I was able to get past this error.

这篇关于网络部署 - DACPAC/XML 输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆