OpsHub 迁移 - 重命名任务超时

OpsHub Migration - Rename Task Timing Out

我 运行 在使用 OpsHub VS 在线迁移实用程序 (OVSMU-V1.2.0.000) 进行迁移时遇到了问题。该过程在相当大的变更集上失败 - 重命名 10901 个文件。然而,之前的一个变更集在大约 4 秒内重命名了 21493 个文件。

这是 OpsHubTFSService.log 的原始错误:

20:33:25,737 [32] DEBUG Imcoming Pend Rename - 10901 files.
20:34:52,848 [27] DEBUG Connecting to the team foundation server instance http://myserver.com:8080/tfs/
20:34:52,865 [27] DEBUG Login successful for token cc15f8a2-a930-42fa-b7ab-ea7037f11f23
20:34:52,918 [27] DEBUG Logout successful for token cc15f8a2-a930-42fa-b7ab-ea7037f11f23
20:44:52,968 [27] DEBUG Connecting to the team foundation server instance http://myserver.com:8080/tfs/
20:44:52,984 [27] DEBUG Login successful for token 58bae319-da16-43eb-8346-fe57a4d5b4db
20:44:53,040 [27] DEBUG Logout successful for token 58bae319-da16-43eb-8346-fe57a4d5b4db
20:54:52,940 [27] DEBUG Connecting to the team foundation server instance http://myserver.com:8080/tfs/
20:54:52,961 [27] DEBUG Login successful for token 9bd99b77-655e-4dc6-a027-cb3a842f1b59
20:54:53,320 [27] DEBUG Logout successful for token 9bd99b77-655e-4dc6-a027-cb3a842f1b59
21:01:28,096 [32] DEBUG Exception in thread of CheckinALL process.
21:01:28,576 [35] ERROR Error occured in thread of CheckinAll:TF400324: Team Foundation services are not available from server myserver.visualstudio.com\DefaultCollection.
Technical information (for administrator):
  The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.
at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.ReadResponse(HttpWebResponse webResponse, WebException webException)
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.IsAuthenticationChallenge(TfsMessage requestMessage, HttpWebResponse webResponse, WebException webException, TfsMessage& responseMessage)
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpWebRequest.SendRequest()
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpRequestChannel.Request(TfsMessage message, TimeSpan timeout)
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.Invoke(TfsClientOperation operation, Object[] parameters, TimeSpan timeout, Object[]& outputs)
   at Microsoft.TeamFoundation.VersionControl.Client.Repository5.PendChanges(String workspaceName, String ownerName, ChangeRequest[] changes, Int32 pendChangesOptions, Int32 supportedFeatures, String[] itemPropertyFilters, String[] itemAttributeFilters, Int32 maxClientPathLength, Failure[]& failures, Int32& changePendedFlags)
   at Microsoft.TeamFoundation.VersionControl.Client.WebServiceLayerLocalWorkspaces.PendChanges(String workspaceName, String ownerName, ChangeRequest[] changes, Int32 pendChangesOptions, Int32 supportedFeatures, Failure[]& failures, String[] itemAttributeFilters, String[] itemPropertyFilters, Boolean updateDisk, Boolean& onlineOperation, Int32& flags)
   at Microsoft.TeamFoundation.VersionControl.Client.Client.PendChanges(Workspace workspace, ChangeRequest[] changeRequests, Boolean updateDisk, PendChangesOptions options, String[] itemAttributeFilters, String[] itemPropertyFilters, Int32 operationId)
   at Microsoft.TeamFoundation.VersionControl.Client.Workspace.PendChanges(ChangeRequest[] changeRequests, Boolean updateDisk, PendChangesOptions options, String[] itemAttributeFilters, String[] itemPropertyFilters)
   at Microsoft.TeamFoundation.VersionControl.Client.Workspace.PendRename(String oldPath, String newPath, LockLevel lockLevel, Boolean updateDisk, Boolean detectFolderAtTarget, Boolean silent, String[] itemAttributeFilters)
   at Microsoft.TeamFoundation.VersionControl.Client.Workspace.PendRename(String oldPath, String newPath, LockLevel lockLevel, Boolean updateDisk, Boolean detectFolderAtTarget, Boolean silent)
   at Microsoft.TeamFoundation.VersionControl.Client.Workspace.PendRename(String oldPath, String newPath, LockLevel lockLevel, Boolean updateDisk, Boolean detectFolderAtTarget)
   at Service.Adapters.TFSCheckinWorkspaceContext.pendRenames() in e:.7Checkout\VSMUOpsHubV2\TFSWCFServiceSource\Service\Service\TFSVersionControl\AdapterComponents\TFSCheckinWorkspaceContext.cs:line 2020
   at Service.Adapters.TFSCheckinWorkspaceContext.pendChanges() in e:.7Checkout\VSMUOpsHubV2\TFSWCFServiceSource\Service\Service\TFSVersionControl\AdapterComponents\TFSCheckinWorkspaceContext.cs:line 2484
   at Service.Adapters.TFSVCAdapter.checkIn(List`1 checkinItems, String checkinComment, String checkinUser, List`1 workitemId, List`1 otherCheckInProperties) in e:.7Checkout\VSMUOpsHubV2\TFSWCFServiceSource\Service\Service\TFSVersionControl\AdapterComponents\TFSVCAdapter.cs:line 121
   at com.opshub.tfs.test.TFSWebService.<>c__DisplayClass2.<CheckInAll>b__0() in e:.7Checkout\VSMUOpsHubV2\TFSWCFServiceSource\Service\Service\TFSWebService.cs:line 760
21:01:28,579 [35] ERROR Error : An existing connection was forcibly closed by the remote host
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

我清除了本地 TFS 用户缓存并重新启动了 OpsHub 迁移实用程序。在重新运行迁移时,变更集再次 运行 一个多小时后失败。

14:49:19,683 [5] DEBUG Imcoming Pend Rename - 10901 files.
14:57:30,677 [4] DEBUG Connecting to the team foundation server instance http://myserver.com:8080/tfs/
14:57:30,712 [4] DEBUG Login successful for token dd0735cf-4ac7-49f1-b00b-c9c4c3cc3b5c
14:57:31,810 [4] DEBUG Logout successful for token dd0735cf-4ac7-49f1-b00b-c9c4c3cc3b5c
    ... (repeat Connect, Login, Logout every 10 mins) ...
16:17:37,230 [5] DEBUG Renamed 1000/10901 items processed.
16:17:48,605 [6] DEBUG Connecting to the team foundation server instance http://myserver.com:8080/tfs/
16:17:48,621 [6] DEBUG Login successful for token 7ed122d5-cf0f-4775-a33e-385a55fd8313
16:17:48,668 [6] DEBUG Logout successful for token 7ed122d5-cf0f-4775-a33e-385a55fd8313
16:27:25,769 [5] DEBUG Exception in thread of CheckinALL process.
16:27:26,659 [6] ERROR Error occured in thread of CheckinAll:TF400324: Team Foundation services are not available from server myserver.visualstudio.com\DefaultCollection.
Technical information (for administrator):
  The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.
  (same as above)

似乎在 运行 在 myserver.com:8080/tfs/.myserver.visualstudio.com 上完成一个很长的进程后,它没有保持与 myserver.visualstudio.com 的会话。

SO 中记录了许多类似的问题,但我发现 none 解决了这个问题。

关于如何进行此迁移有任何想法吗?

您是否一直遇到此错误?在故障管理下重试故障后,您能否重新启动该实用程序并再次开始迁移。让我们知道结果。有时,由于轻微的网络中断或数据包丢失,可能会发生此类错误。

还有一件事,尝试从 TFS 服务器端增加超时限制。以下博客中提供了信息。如果 TFS 托管在 vm environment/shared 服务器上,有时可能会发生此类错误。 http://blogs.msdn.com/b/ablock/archive/2008/09/16/increasing-the-time-out-time.aspx

如果您有任何关于此的 questions/queries,请告诉我们。

感谢和问候,
OpsHub 支持