У меня есть рабочий ServiceHost с одним NetTcpBinding и одной конечной точкой.
I .Close()
it. Затем я создаю новый экземпляр ServiceHost с той же конфигурацией, что и первый. Затем, когда я пытаюсь выполнить .Open()
новый экземпляр, я получаю это очень неудобное исключение:
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)
Кто-нибудь видел это раньше? Это ошибка в .NET Framework (кстати, я использую 4.0)?
Вероятно, соответствующая информация о моем ServiceHost:
- Клиенты не подключены к хосту при первом закрытии;
- Пользовательский
IInstanceProvider
используется для создания экземпляров; - Включена привязка
ReliableSession
; - Тип службы помечен
ServiceBehavior
ниже;
.
[ServiceBehavior(
IncludeExceptionDetailInFaults = true,
InstanceContextMode=InstanceContextMode.PerSession,
ConcurrencyMode=ConcurrencyMode.Reentrant,
UseSynchronizationContext = false
)]
Я открыт для раскрытия дополнительной информации, которую вы, возможно, захотите узнать о приложении.
Обновление 1. Я скомпилировал приложение для таргетинга .NET 3.5, и ошибка не произошла. К сожалению, я должен деактивировать все, что было в Task
.
Обновление 2 Я зарегистрировал ошибку в Microsoft Connect об этой проблеме. Думаю, на этот вопрос уже ответили.