When I try connecting the CM from Visio Workflow Designer by double clicking the any WF activity, the designer pops up a dialog to enter credentials and after submitting the credentials, I am getting the exception as below after a minute or so.

> The operation has timed out 
>
> System.Web.Services()

[![enter image description here][1]][1]

I checked logs, it looked a timeout issue to me so I increased timeout values (to 03.00.00 ) for "CoreService_netTcpBinding" binding in "web.config" at path "{TridionInstallDirectory}\Web" and in "TcmServiceHost.exe.config" at path "{TridionInstallDirectory}\bin", but getting the same error as below:

> The socket connection was aborted. This could be caused by an error
> processing your message or a receive timeout being exceeded by the
> remote host, or an underlying network resource issue. Local socket
> timeout was '03:00:00'. The write operation failed, see inner
> exception. The socket connection was aborted. This could be caused by
> an error processing your message or a receive timeout being exceeded
> by the remote host, or an underlying network resource issue. Local
> socket timeout was '03:00:00'. An existing connection was forcibly
> closed by the remote host   Component:
> Tridion.ContentManager.CoreService Errorcode: 0 User: NT
> AUTHORITY\NETWORK SERVICE  StackTrace Information Details:    at
> System.ServiceModel.Channels.SocketConnection.Write(Byte[] buffer,
> Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)    at
> System.ServiceModel.Channels.SocketConnection.Write(Byte[] buffer,
> Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)    at
> System.ServiceModel.Channels.BufferedConnection.WriteNow(Byte[]
> buffer, Int32 offset, Int32 size, TimeSpan timeout, BufferManager
> bufferManager)    at
> System.ServiceModel.Channels.BufferedConnection.Write(Byte[] buffer,
> Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)    at
> System.ServiceModel.Channels.ConnectionStream.Write(Byte[] buffer,
> Int32 offset, Int32 count)    at
> System.Net.Security.NegotiateStream.StartWriting(Byte[] buffer, Int32
> offset, Int32 count, AsyncProtocolRequest asyncRequest)    at
> System.Net.Security.NegotiateStream.ProcessWrite(Byte[] buffer, Int32
> offset, Int32 count, AsyncProtocolRequest asyncRequest)    at
> System.Net.Security.NegotiateStream.ProcessWrite(Byte[] buffer, Int32
> offset, Int32 count, AsyncProtocolRequest asyncRequest)    at
> System.Net.Security.NegotiateStream.Write(Byte[] buffer, Int32 offset,
> Int32 count)    at
> System.ServiceModel.Channels.StreamConnection.Write(Byte[] buffer,
> Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)    at
> System.ServiceModel.Channels.StreamConnection.Write(Byte[] buffer,
> Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)    at
> System.ServiceModel.Channels.StreamConnection.Write(Byte[] buffer,
> Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout,
> BufferManager bufferManager)    at
> System.ServiceModel.Channels.FramingDuplexSessionChannel.OnSendCore(Message
> message, TimeSpan timeout)    at
> System.ServiceModel.Channels.TransportDuplexSessionChannel.OnSend(Message
> message, TimeSpan timeout)    at
> System.ServiceModel.Channels.OutputChannel.Send(Message message,
> TimeSpan timeout)    at
> System.ServiceModel.Channels.TransactionDuplexChannelGeneric`1.Send(Message
> message, TimeSpan timeout)    at
> System.ServiceModel.Channels.RequestContextBase.Reply(Message message,
> TimeSpan timeout)    at
> System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.Reply(MessageRpc&
> rpc)

AND

> Thread was being aborted.
> 
> 
> Component: Tridion.ContentManager.Workflow.DesignerService Errorcode:
> 0 User: NT AUTHORITY\NETWORK SERVICE
> 
> StackTrace Information Details:    at
> System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage
> message)    at
> System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
> msgData, Int32 type)    at
> Tridion.ContentManager.CoreService.Client.ISessionAwareCoreService.GetSystemWideList(SystemWideListFilterData
> filter)    at
> Tridion.ContentManager.Workflow.DesignerService.WFListener.GetSystemWideList[T,FT](ListBaseColumns
> baseColumns, FT other)    at
> Tridion.ContentManager.Workflow.DesignerService.WFListener.GetWorkflowData()

Am I missing increasing the timeout value somewhere or it's unrelated to increasing timeout?


**UPDATE**

While connecting, it looks like Tridion iterates through and performs several different `Tridion.ContentManager.Workflow.DesignerService.WFListener.GetSystemWideList()` methods. These methods in turn make a database call and read data back as a result of the call.
the final iteration of the GetSystemWideList() method makes the following database call:

    TCM_WORKFLOW_GETLIST_PROCESS_DEFINITIONS

While the database call itself take less than 100ms to complete, it looks like the resulting data read takes a whopping 2+ minutes to complete in Sandbox.

I tried browsing Workflow Process Definitions in Tridion Browser. And it take around 2 mins to respond but present the results in the end without timing out.


  [1]: https://i.sstatic.net/kzOvp.png