Forum Discussion
The client and server cannot communicate, because they do not possess a common algorithm
Have had a problem on my Windows Web Server 2008 R2 for a long while now. Three(3) of the HalcyonGrid consoles keep crashing with this same error. ("Grid Users 2", "Grid Server 3" & "Grid Messaging 4") And before you ask my why I don't upgrade it, I have been wanting to, but the folks running the VPS company have not yet set up a virtual backup HDD for me. {Oh and Whip Assets 1 is now always getting stuck at one of the asset folders, but that might be another problem.} HalcyonGrid was a fork from the Open Simulator Project in 2010.
System.ComponentModel.Win32Exception
HResult=0x80004005
Message=The client and server cannot communicate, because they do not possess a common algorithm
Source=System
StackTrace:
at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface SecModule, String package, CredentialUse intent, SecureCredential scc)
at System.Net.Security.SecureChannel.AcquireCredentialsHandle(CredentialUse credUsage, SecureCredential& secureCredential)
at System.Net.Security.SecureChannel.AcquireClientCredentials(Byte[]& thumbPrint)
at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output)
at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at MySql.Data.MySqlClient.NativeDriver.StartSSL()
at MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at OpenSim.Data.SimpleDB.MySQLSimpleDB.OpenConnection() in D:\a\halcyon\halcyon\OpenSim\Data\SimpleDB\MySQLSimpleDB.cs:line 88
at OpenSim.Data.SimpleDB.MySQLSimpleDB..ctor(String connectionString) in D:\a\halcyon\halcyon\OpenSim\Data\SimpleDB\MySQLSimpleDB.cs:line 73
at OpenSim.Data.SimpleDB.ConnectionFactory.GetConnection() in D:\a\halcyon\halcyon\OpenSim\Data\SimpleDB\ConnectionFactory.cs:line 28
at OpenSim.Data.MySQL.MySQLUserData.Initialize(String connect) in D:\a\halcyon\halcyon\OpenSim\Data\MySQL\MySQLUserData.cs:line 74
at OpenSim.Data.UserDataInitializer.Initialize(IPlugin plugin) in D:\a\halcyon\halcyon\OpenSim\Data\IUserData.cs:line 236
at OpenSim.Framework.PluginLoader`1.Load() in D:\a\halcyon\halcyon\OpenSim\Framework\PluginLoader.cs:line 191
at OpenSim.Data.DataPluginFactory.LoadDataPlugins[T](String provider, String connect) in D:\a\halcyon\halcyon\OpenSim\Data\DataPluginFactory.cs:line 129
at OpenSim.Framework.Communications.UserProfileManagerData.AddPlugin(String provider, String connect) in D:\a\halcyon\halcyon\OpenSim\Framework\Communications\UserProfileManagerData.cs:line 78
at OpenSim.Framework.Communications.UserProfileManager.AddPlugin(String provider, String connect) in D:\a\halcyon\halcyon\OpenSim\Framework\Communications\UserProfileManager.cs:line 162
at OpenSim.Grid.UserServer.Modules.UserDataBaseService.Initialize(IGridServiceCore core) in D:\a\halcyon\halcyon\OpenSim\Grid\UserServer.Modules\UserDataBaseService.cs:line 59
at OpenSim.Grid.UserServer.OpenUser_Main.StartupUserServerModules() in D:\a\halcyon\halcyon\OpenSim\Grid\UserServer\Main.cs:line 220
at OpenSim.Grid.UserServer.OpenUser_Main.StartupSpecific() in D:\a\halcyon\halcyon\OpenSim\Grid\UserServer\Main.cs:line 155
at OpenSim.Framework.Servers.BaseOpenSimServer.Startup() in D:\a\halcyon\halcyon\OpenSim\Framework\Servers\BaseOpenSimServer.cs:line 300
at OpenSim.Grid.UserServer.OpenUser_Main.Main(String[] args) in D:\a\halcyon\halcyon\OpenSim\Grid\UserServer\Main.cs:line 118
This exception was originally thrown at this call stack:
[External Code]
OpenSim.Data.SimpleDB.MySQLSimpleDB.OpenConnection() in MySQLSimpleDB.cs
OpenSim.Data.SimpleDB.MySQLSimpleDB.MySQLSimpleDB(string) in MySQLSimpleDB.cs
OpenSim.Data.SimpleDB.ConnectionFactory.GetConnection() in ConnectionFactory.cs
OpenSim.Data.MySQL.MySQLUserData.Initialize(string) in MySQLUserData.cs
OpenSim.Data.UserDataInitializer.Initialize(OpenSim.Framework.IPlugin) in IUserData.cs
OpenSim.Framework.PluginLoader<T>.Load() in PluginLoader.cs
OpenSim.Data.DataPluginFactory.LoadDataPlugins<T>(string, string) in DataPluginFactory.cs
OpenSim.Framework.Communications.UserProfileManagerData.AddPlugin(string, string) in UserProfileManagerData.cs
OpenSim.Framework.Communications.UserProfileManager.AddPlugin(string, string) in UserProfileManager.cs
...
[Call Stack Truncated]
Also I have been wondering if the above error is because of a problem in the OS itself, because every time I open the Group Policy Editor, to update the preferred Cipher list, a bunch of dialog boxes pop up with XML Errors. Now my server has an "A" rating on SSLLabs.com.
[Window Title]
Administrative Templates
[Main Instruction]
Encountered an error while parsing.
[Content]
Encountered an error while parsing.
Illegal xml character.
File C:\Windows\PolicyDefinitions\P2P-pnrp.admx, line 71, column 34
[OK]
[Window Title]
Administrative Templates
[Main Instruction]
Encountered an error while parsing.
[Content]
Encountered an error while parsing.
Illegal qualified name character.
File C:\Windows\PolicyDefinitions\TerminalServer-Server.admx, line 366, column 16
[OK]
[Window Title]
Administrative Templates
[Main Instruction]
Encountered an error while parsing.
[Content]
Encountered an error while parsing.
Illegal xml character.
File C:\Windows\PolicyDefinitions\P2P-pnrp.admx, line 71, column 34
[OK]
[Window Title]
Administrative Templates
[Main Instruction]
Encountered an error while parsing.
[Content]
Encountered an error while parsing.
Illegal qualified name character.
File C:\Windows\PolicyDefinitions\TerminalServer-Server.admx, line 366, column 16
[OK]
Thank you, Shalom.
- life777eternalCopper Contributor
Thank you kyazaferr, I appreciate your reply. I am aware that the server should probably be upgraded, however it is on a VPS rental and the folks at the VPS company have been MIA / AWOL for a long time, and have not yet set up a secondary virtual HDD for me again, for backing up the system. Some options short of backing up and upgrading would be nice.
The website for my HalcyonGrid https://grid.toallchurches.net is using ASP .NET v4.0 Classic, on IIS 7.5. MySQL Server 8.0.26, Connector/NET 8.0.26, and have MySQL Workbench 8.0 CE, and is a template from https://myworldsrc.com The website itself works, although there's several consoles for the HalcyonGrid.
Whip Assets 1, Grid Users 2, Grid Server 3, Grid Messaging 4, Grid Aperture 5, then each region is 9500-9509, for 10 regions.
2-4 are all getting that same error as above, although 1 is getting stuck at one of the asset folders, which may not be the same issue.
Also the first four(4) of the region consoles are causing the following error:
---------------------------
Halcyon.exe - This application could not be started.
---------------------------
This application requires one of the following versions of the .NET Framework:
.NETFramework,Version=v4.8Do you want to install this .NET Framework version now?
---------------------------
Yes No
---------------------------If I hit Yes, it opens the download page for .NET 4.8.1, which can't run on Windows Web Server 2008 R2, and if I hit No, it shows Error -2146232576.
Although I do have .NET 4.8 installed.
Thank you, Shalom.
- kyazaferrIron Contributor
VPS Issues and Backup Options
Since the VPS company has been unresponsive, I understand the frustration. While upgrading your server or getting a secondary virtual HDD might be a long-term solution, here are a few alternatives you can consider for your current setup:
- Cloud Backup Solutions: Even without a secondary HDD, you could explore cloud-based backup solutions that are independent of the VPS provider. Services like Backblaze, Acronis, or Carbonite can back up your critical data without needing a physical secondary disk. They also offer automated backups and can be set up with minimal configuration.
- Remote Backup: If you have access to another server or cloud storage, consider setting up remote backup solutions like Rsync (Linux-based) or Robocopy (Windows-based) for scheduled file copying to another server or cloud storage provider.
- Database Backup: For MySQL, consider using MySQL's built-in backup utilities (mysqldump) or configuring automated backups via a third-party service that supports MySQL databases. This way, you don’t need to rely on the VPS provider for backing up your databases.
- Virtual Machine Snapshots: If your VPS hosting supports it, consider using snapshots to back up the entire server state. These snapshots can be taken periodically and stored as part of your disaster recovery strategy.
- Server Monitoring: If the VPS company is unresponsive, it might be worth looking into more reliable VPS providers or exploring cloud options like AWS, Google Cloud, or Azure, which offer strong support and flexible backup solutions.
- kyazaferrIron Contributor
Additional Recommendations:
- Consider upgrading your server: Windows Server 2008 R2 is nearing end-of-life and lacks many of the security and performance improvements found in newer versions like Server 2016 or 2022. If possible, you should prioritize upgrading.
- Backup your system: Before making any changes, ensure you have a full backup of your server to prevent data loss if something goes wrong.
These steps should help you get closer to resolving the issues you're facing with HalcyonGrid, Group Policy, and SSL/TLS on your server. If you need further assistance, feel free to provide more details on any of the steps above.