diff --git a/ArchiSteamFarm/ArchiSteamFarm.csproj b/ArchiSteamFarm/ArchiSteamFarm.csproj
index 6b66ebf1f..03406aa30 100644
--- a/ArchiSteamFarm/ArchiSteamFarm.csproj
+++ b/ArchiSteamFarm/ArchiSteamFarm.csproj
@@ -112,6 +112,7 @@
+
diff --git a/ArchiSteamFarm/WCF.cs b/ArchiSteamFarm/WCF.cs
index b1e9f62ce..42483ba9e 100644
--- a/ArchiSteamFarm/WCF.cs
+++ b/ArchiSteamFarm/WCF.cs
@@ -202,6 +202,9 @@ namespace ArchiSteamFarm {
switch (Program.GlobalConfig.WCFBinding) {
case GlobalConfig.EWCFBinding.NetTcp:
result = new NetTcpBinding {
+ // This is a balance between default of 8192 which is not enough, and int.MaxValue which is prone to DoS attacks
+ ReaderQuotas = { MaxStringContentLength = ushort.MaxValue },
+
// We use SecurityMode.None for Mono compatibility
// Yes, also on Windows, for Mono<->Windows communication
Security = { Mode = SecurityMode.None }
@@ -209,10 +212,17 @@ namespace ArchiSteamFarm {
break;
case GlobalConfig.EWCFBinding.BasicHttp:
- result = new BasicHttpBinding();
+ result = new BasicHttpBinding {
+ // This is a balance between default of 8192 which is not enough, and int.MaxValue which is prone to DoS attacks
+ ReaderQuotas = { MaxStringContentLength = ushort.MaxValue }
+ };
+
break;
case GlobalConfig.EWCFBinding.WSHttp:
result = new WSHttpBinding {
+ // This is a balance between default of 8192 which is not enough, and int.MaxValue which is prone to DoS attacks
+ ReaderQuotas = { MaxStringContentLength = ushort.MaxValue },
+
// We use SecurityMode.None for Mono compatibility
// Yes, also on Windows, for Mono<->Windows communication
Security = { Mode = SecurityMode.None }