diff options
author | Lluis Sanchez <lluis@xamarin.com> | 2015-09-16 21:29:09 +0300 |
---|---|---|
committer | Lluis Sanchez <lluis@xamarin.com> | 2015-09-16 21:29:09 +0300 |
commit | 68199978ce3cdd1a98a1903da32f9093ff4abc6c (patch) | |
tree | 78b689ea90faa5dc1ddea830eea4ff23129291cc | |
parent | ad71d5ceaeb5bb2ab4b34dce9574f2cff10f6c11 (diff) |
[Core] Fix project builder issue
Use the IPC remoting channel instead of TCP. The TCP channel seems to
randomly fail when there are many concurrent calls.
-rw-r--r-- | main/src/core/MonoDevelop.Projects.Formats.MSBuild/Main.cs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/main/src/core/MonoDevelop.Projects.Formats.MSBuild/Main.cs b/main/src/core/MonoDevelop.Projects.Formats.MSBuild/Main.cs index 7436777040..617b966cdb 100644 --- a/main/src/core/MonoDevelop.Projects.Formats.MSBuild/Main.cs +++ b/main/src/core/MonoDevelop.Projects.Formats.MSBuild/Main.cs @@ -30,6 +30,7 @@ using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; +using System.Runtime.Remoting.Channels.Ipc; using System.Threading; using System.Diagnostics; @@ -68,10 +69,15 @@ namespace MonoDevelop.Projects.Formats.MSBuild IDictionary dict = new Hashtable (); var clientProvider = new BinaryClientFormatterSinkProvider(); var serverProvider = new BinaryServerFormatterSinkProvider(); - dict ["port"] = 0; - dict ["rejectRemoteRequests"] = true; serverProvider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full; - ChannelServices.RegisterChannel (new TcpChannel (dict, clientProvider, serverProvider), false); + + /* dict ["port"] = 0; + dict ["rejectRemoteRequests"] = true; + ChannelServices.RegisterChannel (new TcpChannel (dict, clientProvider, serverProvider), false);*/ + + // Use the IpcChannel for now, since seems to be failing when there are many concurrent calls + dict ["portName"] = Guid.NewGuid ().ToString (); + ChannelServices.RegisterChannel (new IpcChannel (dict, clientProvider, serverProvider), false); } public static void WatchProcess (string procId) |