Releases: Kittyfisto/SharpRemote
OutOfProcessSiloServer allows specification port ranges
Bugfixes
Improved error messages
SocketEndPoint
The error messages emitted by SocketEndPoint in case of a socket failure have been improved: Previously, a read failure would be reported, with the actual cause of the failure apearing dead last in the error message.
Now the actual error is reported first, as well as some tentative guess as to why that particular error appeared.
Example:
My Endpoint: Disconnecting EndPoint '127.0.0.1:62572' from '192.168.0.1:49158': The connection was reset by the remote peer (this is usually caused by the remote process exiting unexpectedly or crashing).
The EndPointDisconnectReason enum has been extended as well to reflect those more detailed errors:
- ConnectionReset
- ConnectionAborted
- ConnectionTimedOut
- Unknown
Nuget
As usual, this release can be found on NuGet.
Improved post mortem debugging
Host process crashes
This minor release enables OutOfProcessSilo to intercept pure virtual function calls and asserts from code built using Visual Studio 2015 and Visual Studio 2017 and create minidumps. Previously only Visual Studio 2013 and earlier were supported.
Furthermore, it's possible to enable detailed debug logs of SharpRemote's post mortem debugger.
Issues solved
Nuget
As usual, this release can be found on NuGet.
Improved debugging capabilities
Improved error logs when using OutOfProcessSilo:
Host process crashes
Previously, if the host process crashed, the only error logged was a ReadFailure (or sometimes a WriteFailure) which was technically correct, but not the root cause of the problem. From now on, if the host process exits unexpectedly (such as by crashing or having been killed), errors such as the following are logged:
2018-11-12 16:19:15,656 [146] ERROR ProcessWatchdog Host 'XYZ' (PID: 33072) exited unexpectedly with error code 1 at 11/12/2018 16:19:15!
In these events, IFailureHandler.OnFailure is called with Failure.HostProcessExited (whereas previously, ConnectionFailure was reported most of the time).
Issues solved
Nuget
As usual, this release can be found on NuGet.
More proxies for everyone
This release features a preview onto the new proxy generation feature #57:
It allows the creation of proxies for interfaces which can handle exceptions, perform automatic retries, fallback to another implementation, etc...
Furthermore, log4net has finally been upgraded to v2.0.8.
Support for star topology
This patch introduces SocketServer (#36) which accepts more than one concurrent connection from other end points and is meant to be used in typical star networks (one central server, many clients). This class is still under development, but can be used already.
On top of this, several exceptions have been refactored to include the same common base class (#51 and #52).
As usual, this release can be found on NuGet.
Bugfixes
This patch offers a fix for #49. It also ensures that all custom exceptions are part of the SharpRemote namespace and are serializable (This will stay this way, but may break backwards compatibility due to requiring a different namespace than previously).
This patch offers even more enhanced debugging capabilities which are disabled by default. Setting the level of the "SharpRemote.EndPointStatistics" logger to debug will print very detailed network and RPC stats every second.
As always, this version can be found on NuGet: https://www.nuget.org/packages/SharpRemote/0.5.80
Improved debugging capabilities
This little patch has introduced more logging capabilities for the following classes:
SharpRemote.HeartbeatMonitor
SharpRemote.LatencyMonitor
Both classes are now very chatty when debug level logging for their namespace is enabled via log4net.
As always, this release is available on NuGet: https://www.nuget.org/packages/SharpRemote/0.5.72
First release
This release isn't meant to be used by production code just yet. The protocol, for once, isn't backwards compatible, however most other features are fully functional.
This release fixes two issues compared to the last (nuget only) release:
This version can be downloaded from Nuget.org (https://www.nuget.org/packages/SharpRemote/0.5.58) or from the attached zip files, as usual.