Не уверен, что правильно выбрал форум для этом проблеммы, но всё-таки.
Исходные данные:
Windows Server 2003
Есть .NET Windows service, к которому можно подключится через IpcChannel:
IDictionary prop = new Hashtable();
prop["portName"] = "IpcServicePort";
prop["authorizedGroup"] = ConfigurationManager.AppSettings["ClientAuthorizedGroup"];
prop["name"] = "ipcService";
prop["impersonationLevel"] = "None";
IpcServerChannel chan = new IpcServerChannel(prop, null);
ChannelServices.RegisterChannel(chan, false);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof (SubmitAlertServiceProxy),
"SubmitAlertService",
WellKnownObjectMode.Singleton);
authorizedGroup задаётся обычно "Everyone", но я перепробовал разные — без успеха.
Есть .NET dll, которая позволяет связываться с этим сервисом, одновременно предоставляя COM интерфейс для не .NET клиентов.
Код соединения:
submitAlertService = (ISubmitAlertService)Activator.GetObject(typeof (ISubmitAlertService), "ipc://IpcServicePort/SubmitAlertService");
Проблемма в том, что все возможные .NET клиенты (включая ASP.NET процессы), а также обычное VB6 приложение (через COM interop) замечательно работают под любыми аккаунтами.
Единственно, ASP (old ASP) приложение при попытке соединия всегда выдаёт ошибку: Failed to connect to an IPC Port: Access is denied. — т.е. ошибка доступа к данной Named Pipe.
Никакое изменение прав приложения (включая запуск под админским аккаунтом не помагают). Возможно IIS как-то дополнительно ограничевает права процесса вне зависимости от использованного аккаунта? Облазил наверно все возможные источники в сети по данному вопросу, но везде как правило рассматривается проблемма с ASP.NET приложением
Буду благодарен любой помощи.
... << RSDN@Home 1.2.0 alpha rev. 693>>