diff --git a/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs b/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs
index 75adfcbb4e3f75e2064bec01bb9ee3f77dc65bb4..8b5d76b40622d9fc110c7c470592083bfc410f09 100644
--- a/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs
+++ b/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs
@@ -921,13 +921,19 @@ namespace TouchSocket.Rpc.TouchRpc
{
using (ByteBlock returnByteBlock = new ByteBlock())
{
+ var methodName = rpcPackage.MethodName;
+ var parametersBytes = rpcPackage.ParametersBytes;
+
rpcPackage.SwitchId();
rpcPackage.MethodName = default;
rpcPackage.ParametersBytes = default;
rpcPackage.Status = TouchSocketStatus.Success.ToValue();
rpcPackage.Package(returnByteBlock);
Send(TouchRpcUtility.P_1200_Invoke_Response, returnByteBlock);
+
rpcPackage.SwitchId();
+ rpcPackage.MethodName = methodName;
+ rpcPackage.ParametersBytes = parametersBytes;
}
}
diff --git a/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs b/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs
index 0e380e27d5c2a79dbffcdea0f538ab61e50fe6d8..b796f5edac9d2547b5f7ba0db8254c2f53c5a79b 100644
--- a/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs
+++ b/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs
@@ -286,7 +286,16 @@ namespace TouchSocket.Rpc.TouchRpc
Send(TouchRpcUtility.P_1000_Handshake_Response, byteBlock);
IsHandshaked = true;
args.Message = "Success";
- OnHandshaked?.Invoke(this, args);
+ ThreadPool.QueueUserWorkItem((o) =>
+ {
+ try
+ {
+ OnHandshaked?.Invoke(this, args);
+ }
+ catch
+ {
+ }
+ }, default);
}
else
{
diff --git a/src/TouchSocket/TouchSocket.csproj b/src/TouchSocket/TouchSocket.csproj
index e4924551273d9b38076cab859a8cf514a9171b70..cfbb6786a768accff505e28d314bd574d8941e8a 100644
--- a/src/TouchSocket/TouchSocket.csproj
+++ b/src/TouchSocket/TouchSocket.csproj
@@ -4,7 +4,7 @@
logo.ico
True
D:\MyStore\13_Doc\Keys\TouchSocket.snk
- 1.2.2
+ 1.2.3
8.0
若汝棋茗
Copyright © 2023 若汝棋茗