1. Что произойдёт, если клиент отправляет запрос, но при этом на хостовой машине будет запущено сразу несколько экземпляров приложений Revit, в каждом из которых, в свою очередь, будет работать указанная служба?В данной реализации WCF сервис просто не запустится при запуске второго экземпляра Revit, а вернее вылетет с exception.
2. Каким образом, в обозначенном выше решении, внешнее приложение сможет адресовать свой запрос конкретному процессу, если присутствует ситуация, обозначенная в п.1?В каждом экземпляре приложения нужно будет создавать отдельный экземпляр WCF сервиса с прослушкой разных портов (если речь идет о tcp протоколе). Клиент должен адресовать свой запрос конкретному WCF сервису, а значит и конретному процессу Revit.
Клиент как бы хочет обратится к серверу, но тот его не пускает причем Ревит при этом виснет(курсор-часики) до бесконечности.На консольном "Hello World" пробовал, работает?
На консольном "Hello World" пробовал, работает?в смысле приложение "Hello World" или подключится к "Hello World"?
в смысле приложение "Hello World" или подключится к "Hello World"?Создать два простых консольных приложения - один клиент, а др. - являющийся хостом для твоего WCF-сервиса. Отправить клиентом запрос сервису и получить обратно ответ. Чтобы исключить Ревит из уравнения и понять, работает ли твой код в др. ситуациях.
Другие приложения работают без проблем. но вот с WCF сервисом никак.
lock (_locker)
{
TaskContainer.Instance.EnqueueTask(GetDocumentPath);
// Ждем завершение задачи
Monitor.Wait(_locker, WAIT_TIMEOUT);
}
Instance
, потом заходит в EnqueueTask
а вот в GetDocumentPath
не заходит. Monitor.Wait(_locker, WAIT_TIMEOUT);
. и все. var serviceHost = new ServiceHost(typeof(RevitExternalService), new Uri(ServiceUrlHttp), new Uri(ServiceUrlTcp));