I have a working ServiceHost with a single NetTcpBinding and a single endpoint.
I .Close()
it. Then, I create a new ServiceHost instance with the exact same configuration as the first one. Then, when I try to .Open()
the new instance I'm getting this very awkward exception:
System.ArgumentException occurred
Message=Instance '[email protected]:||localhost:2718|game|' already exists in CounterSet 'e829b6db-21ab-453b-83c9-d980ec708edd'.
Parameter name: InstanceName
Source=System.Core
ParamName=InstanceName
StackTrace:
at System.Diagnostics.PerformanceData.CounterSetInstance..ctor(CounterSet counterSetDefined, String instanceName)
Has anybody seen that before? Is it a bug in the .NET Framework (I'm using 4.0, by the way)?
Probably relevant info about my ServiceHost:
- No clients are connected to the host, when it is first closed;
- A custom
IInstanceProvider
is used to create instances; - The binding's
ReliableSession
is turned on; - The service type is marked with the
ServiceBehavior
below;
.
[ServiceBehavior(
IncludeExceptionDetailInFaults = true,
InstanceContextMode=InstanceContextMode.PerSession,
ConcurrencyMode=ConcurrencyMode.Reentrant,
UseSynchronizationContext = false
)]
I'm open to reveal any extra info you might want to know about the application.
Update 1 I compiled the application targeting .NET 3.5 and the error did NOT happened. Unfortunately, I have to deactivate everything that relied in Task
's.
Update 2 I logged a bug at Microsoft Connect about this issue. I guess this question is already answered now.