問題:
Powershell スクリプトを使用して DACPAC を展開できません。このスクリプトは、リリース管理用に構成された約 20 の他のデータベース サーバーで機能します。
作業環境:
- Windows Server 2008 R2
- パワーシェル 2.0
- SQL Server 2008 R2 64 ビット
- Visual Studio プレミアム 2012 Update 4
- Visual Studio 2012 用の SQL Server データ ツール
- Visual Studio 2013 Update 4 の Release Management Deployer
動作しない環境:
- Windows Server 2008 R2
- パワーシェル 2.0
- SQL Server 2012 64 ビット
- Visual Studio プレミアム 2012 Update 4
- Visual Studio 2012 用の SQL Server データ ツール
- Visual Studio 2013 Update 4 の Release Management Deployer
指図:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\sqlpackage.exe
/Action:Publish
/SourceFile:"\\<Server>\Builds\<BuildDefinition>\<BuildNumber>\Databases\Arsenal\Arsenal.dacpac"
/Profile:"\\<Server>\Builds\<BuildDefinition>\<BuildNumber>\Deployment\Configuration\Databases\Publish_DEFAULT.xml"
/p:TreatVerificationErrorsAsWarnings="True"
/v:BuildNumber="<BuildNumber>"
どこ:
Publish_DEFAULT.xml
次のキーが含まれています。
<?xml version="1.0"?>
<Configurations>
<Properties>
<Property key="IncludeCompositeObjects" value="True" />
<Property key="ScriptDatabaseOptions" value="True" />
<Property key="BlockOnPossibleDataLoss" value="False" />
<Property key="DropObjectsNotInSource" value="True" />
<Property key="DropRoleMembersNotInSource" value="True" />
<Property key="DropPermissionsNotInSource" value="True" />
<Property key="DeployDatabaseInSingleUserMode" value="True" />
<Property key="BackupDatabaseBeforeChanges" value="False" />
<Property key="GenerateSmartDefaults" value="True" />
<Property key="TreatVerificationErrorsAsWarnings" value="True" />
</Properties>
<SQLCmdVariables>
<SQLCmdVariable key="BuildNumber" value="UNKNOWN" />
<SQLCmdVariable key="DeployLoadTestData" value="False" />
<SQLCmdVariable key="DeployPurgeData" value="False" />
</SQLCmdVariables>
</Configurations>
ログ:
データベースへの公開 配置の初期化中 (開始) 配置の初期化中 (失敗) 予期しないエラーが発生しました: 算術演算でオーバーフローが発生しました..
未処理の例外: System.OverflowException: 算術演算でオーバーフローが発生しました。System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake (ブール値の暗号化、ブール値の trustServerCert、ブール値の IntegratedSecurity、ブール値 & marsCapable) で System.Data.SqlClient.TdsParser.Connect (ServerInfo serverInfo、SqlInternalConnectionTds connHandler、ブール値の ignoreSniOpenTimeout、Int64 timerExpire、ブール値の暗号化、ブール値trustServerCert、Boolean integratedSecurity、Boolean withFailover) の System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo、文字列 newPassword、SecureString newSecurePassword、Boolean ignoreSniOpenTimeout、TimeoutTimer タイムアウト、Boolean withFailover) の System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo) 、
1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableSqlConnection.<OpenConnection>b__0() at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.<>c__DisplayClass4.<ExecuteAction>b__3(RetryState retryState) at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.ExecuteAction[R](Func
. <>1 token) at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.ExecuteAction(Action
c__DisplayClass8 . Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil.ExecuteDeployOperation(String connectionString, String filePath, MessageWrapper messageWrapper, Boolean sourceIsPackage, Boolean targetIsPackage, Func 2 generateScriptFromDatabase) の b__0 (DacServices サービス) Microsoft.Data.Tools.Schema.CommandLineTool で。 DacServiceUtil.DoDeployAction(DeployArguments parsedArgs, Action1 token) at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableSqlConnection.OpenConnection() at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.OpenConnection(String connectionString, Boolean useRetry) at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.OpenConnection(SqlConnectionStringBuilder csb, Action
1 catchException, Boolean useRetry) at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.GetServerAndDatabaseVersion(String connectionString, ServerAndDatabaseInfo& info) at Microsoft.Data.Tools.Schema.Sql.SqlDatabaseSchemaProviderFamily.DetermineDatabaseSchemaProvider(String connectionString) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.GetProviderType(DatabaseSchemaProviderFamily connectionSniffer, String connectionString, Type& providerType, Boolean& validDataSource) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.OnInit(ErrorManager errors, String targetDBName) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment..ctor(SqlDeploymentConstructor constructor) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentConstructor.ConstructServiceImplementation() at Microsoft.SqlServer.Dac.DacServices.CreatePackageToDatabaseDeployment(String connectionString, IPackageSource packageSource, String targetDatabaseName, DacAzureDatabaseSpecification creationDefaults, DacDeployOptions options, ErrorManager errorManager) at Microsoft.SqlServer.Dac.DeployOperation.<>c__DisplayClass3.<>c__DisplayClass5.<CreatePlanInitializationOperation>b__1() at Microsoft.Data.Tools.Schema.Sql.Dac.OperationLogger.Capture(Action action) at Microsoft.SqlServer.Dac.DeployOperation.<>c__DisplayClass3.<CreatePlanInitializationOperation>b__0(Object operation, CancellationToken token) at Microsoft.SqlServer.Dac.Operation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.ReportMessageOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, DacLoggingContext loggingContext, CancellationToken cancellationToken) at Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacAzureDatabaseSpecification creationDefaults, DacDeployOptions options, CancellationToken cancellationToken, DacLoggingContext loggingContext) at Microsoft.SqlServer.Dac.DacServices.Deploy(DacPackage package, String targetDatabaseName, Boolean upgradeExisting, DacDeployOptions options, Nullable
1 generateScriptFromPackage, Func
1 writeError, Action
2 writeMessage、Action`1 writeWarning、CancellationToken cancelToken) Microsoft.Data.Tools.Schema.CommandLineTool.Program.DoDeployActions(CommandLineArguments parsedArgs) Microsoft.Data.Tools.Schema.CommandLineTool.Program.PerformAction(CommandLineArguments parsedArgs) Microsoft. Microsoft.Data.Tools.Schema.CommandLineTool.Program.Main(String[] args) の Data.Tools.Schema.CommandLineTool.Program.Run(String[] args)
追加コメント:
2 つの環境の唯一の違いは、SQL Server のバージョンです。ただし、SQL Server 2012 が動作しているサーバーがあります。
サービスの ID として Powershell スクリプトを実行しました: Microsoft Deployment Agent ... same log file error; ただし、sqlpackage.exe は次のエラーをスローしています。
問題の署名: 問題イベント名: CLR20r3 問題の署名 01: sqlpackage.exe 問題の署名 02: 12.0.2743.1 問題の署名 03: 5438200c 問題の署名 04: System.Data 問題の署名 05: 4.0.30319.18408 問題の署名 06: 52310bef 問題の署名 07: 28B2問題署名08:6E問題署名09:System.OverFlowException OSバージョン:6.1.7601.2.1.0.272.7ロケールID:1033追加情報1:D90E追加情報2:D90EE7D582C41AE7B6B96CA9C