2014-05-06 46 views
1

我試圖部署一個Web應用程序。我可以部署網站部分很好,但SQL數據庫不會部署。在我的開發機器上在VS2012中收到的錯誤是:Web部署 - DACPAC/XML輸出

錯誤24 Web部署任務失敗。 ((2014/5/6 1:36:23)在遠程計算機上處​​理請求時發生錯誤。)

(2014/5/6 1:36:23)發生錯誤當請求在遠程計算機上處​​理時。 服務器遇到處理請求的問題。聯繫服務器管理員以獲取更多信息。

在Web/SQL Server中,事件日誌給這個:

*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版本可能?如果沒有人有辦法解決給出的錯誤,有沒有辦法讓我手動部署數據庫?

回答

2

我有這個問題,它最終成爲一個權限問題。

用戶只有db_datareader,db_datawriter和execute。

我需要給SSDT用戶db_owner,然後我能夠通過這個錯誤。