MSTSC + 网关在自动重新连接时崩溃

MSTSC + 网关在自动重新连接时崩溃

我们有一个用作 RemoteApp 的应用程序。用户通过网关访问 RemoteApp。

每次发生异常断开连接(连接失败)时,在 Win64 上运行 MSTSC v.6.3 的用户(已在 Windows 7 和 Windows 8 上测试)都会遇到崩溃。

典型的崩溃是 MSTSC 内部的访问冲突,错误消息为“远程桌面连接已停止工作”。但有时 MSTSC 只是冻结。事件查看器显示“应用程序错误”,事件 ID 1000,异常代码 0xC0000005(== 访问冲突)。

Win64 上的 MSTSC v.6.2 或更早版本或 Win32 上的 MSTSC(任何版本)均可正常运行。

如果我们允许用户绕过网关服务器直接访问 TS 服务器,则不会发生崩溃。在这种情况下,连接失败后,MSTSC 自动重新连接成功。

有人知道解决这个问题的办法吗?欢迎任何帮助。


来自事件查看器的其他信息:

错误应用程序名称:mstsc.exe,版本:6.3.9600.16415,时间戳:0x524b5b3d
错误模块名称:mstscax.dll,版本:6.3.9600.16503,时间戳:0x52c5f878
异常代码:0xc0000005
故障偏移量:0x0000000000439b7a
错误进程 ID:0x1658
错误应用程序启动时间:0x01cf84a3cfff7048
错误应用程序路径:C:\Windows\system32\mstsc.exe
错误模块路径:C:\Windows\system32\mstscax.dll

Visual Studio Express 2012 调试器的堆栈跟踪:

mstscax.dll!CClientProxyTransport::SetErrorStatus(长)
mstscax.dll!CClientProxyTransport::GetErrorStatus(长,类CClientProxyTransport *)
mstscax.dll!CProxyClientSendPacket::OnComplete(长整型,无符号长整型)
mstscax.dll!CAAAsyncSend::OnComplete(长)
mstscax.dll!CAARpcClientChannel::Shutdown(无符号长整型,类IAAAsyncOperation*)
mstscax.dll!CAAAsyncDisconnectChannel::Invoke(无符号长整型,类CAAChannel*,类IAATransportChannel*)
mstscax.dll!CAAChannel::DisconnectInternal(int,long)
mstscax.dll!CAARpcClientChannel::HandleReceiveComplete(结构_RPC_ASYNC_STATE *)
mstscax.dll!CAARpcClientChannel::HandleIOCompletion(struct _OVERLAPPED *,无符号长整型)
mstscax.dll!CAagIO::AAGIoThreadFunc(void *)
kernel32.dll!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()

答案1

我们发现这与网关上的登录消息有关。如果您禁用网关上的登录消息,它就会起作用!

我不知道为什么会发生这种情况。但这是一个快速修复。我们希望微软能纠正这个错误。

相关内容