InvalidDataException при развертывании с помощью webdeploy - PullRequest
1 голос
/ 07 января 2011

Я создал пакет с помощью Visual Studio.

Затем я скопировал его на сервер и развернул этот пакет локально (у меня есть программа C #, которая делает это, код приведен ниже)

Iвнесите изменения и соберите V2 пакета, при его развертывании я получаю InvalidDataException (полный стек ниже):

Другие детали:

  • ОС Server2008 R2

  • Происходит только тогда, когда пакет помещается в установщик, если я просто собираю его локально и запускаю, он работает каждый раз.

  • Файлы zip отложеныс установщиком нормально работает в первый раз, так что я могу обойти эту проблему, удалив развернутые файлы и затем повторно запустив

  • Я использую WebDeploy v2 (но также была эта проблема с v1)

Стек ошибок:

Error: System.IO.InvalidDataException: Found invalid data while decoding.
 at System.IO.Compression.Inflater.DecodeDynamicBlockHeader()
 at System.IO.Compression.Inflater.Decode()
 at System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32 length)
 at System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32 count)
 at Microsoft.Web.Deployment.SerializationHelper.CopyStream(Stream sourceStream, Stream destStream, Byte[] buffer)
 at Microsoft.Web.Deployment.FilePathProvider.Add(DeploymentObject source, Boolean whatIf)
 at Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext)
 at Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject)
 at Microsoft.Web.Deployment.DeploymentSyncContext.SyncDirPathChildren(DeploymentObject destRoot, DeploymentObject sourceRoot)
 at Microsoft.Web.Deployment.DeploymentSyncContext.SyncDirPathChildren(DeploymentObject destRoot, DeploymentObject sourceRoot)
 at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source)
 at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(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)
 at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)

Что делает моя программа (извлечено и сжато):

 _syncOptions = new DeploymentSyncOptions() {DeleteDestination = false,DoNotDelete = false};
 _sourceBaseOptions = new DeploymentBaseOptions();
 _destBaseOptions = new DeploymentBaseOptions
 {
 TraceLevel = TraceLevel.Verbose,
 };
 var appDeploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.Package,
 applicationPackage,
 _sourceBaseOptions);
 DeploymentRule rule = null;
 if (_syncOptions.Rules.TryGetValue("IISConfigFrom64To32", out rule))
 {
 _syncOptions.Rules.Remove("IISConfigFrom64To32");
 }
 var summary = DeploymentObject.SyncTo(destBaseOptions, _syncOptions);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...