问题
I'm trying to deploy a web application. I can deploy the website portion just fine, however the SQL database won't deploy. The error I receive in VS2012 on my development machine is:
Error 24 Web deployment task failed. ((5/6/2014 1:36:23 PM) An error occurred when the request was processed on the remote computer.)
(5/6/2014 1:36:23 PM) An error occurred when the request was processed on the remote computer. The server experienced an issue processing the request. Contact the server administrator for more information.
On the web/sql server, the event logs give this:
*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)*
When I "test connection" for the SQL Database from VS2012 it works just fine, so I know it's not a connection/authentication issue. It looks like the dacpac file is using the wrong version of XML maybe? If nobody has a way to fix the error given, is there a way for me to manually deploy the database?
回答1:
I had this problem, and it ended up being a permissions issue.
The user only had db_datareader, db_datawriter, and execute.
I needed to give the SSDT user db_owner, then I was able to get past this error.
来源:https://stackoverflow.com/questions/23502909/web-deploy-dacpac-xml-output