Service и IpcChannel
От: Pavel M. Россия  
Дата: 19.09.06 11:32
Оценка:
Привет!

Пытаюсь использовать Remoting через IpcChannel, точнее в службе регистрируется IpcServerChannel не шифрованный, клиент — оконное приложение, пытается подключиться через IpcClientChannel, однако, при вызове метода удаленного объекта, вылетаем с RemotingException, который говорит о том, что "Не удалось подключиться к IPC порут. Отказано в доступе."

По TcpChannel все работает.
Я где-то не настроил права?
--------------------------
less think — do more
Re: Service и IpcChannel
От: Mika Soukhov Stock#
Дата: 19.09.06 11:43
Оценка:
Здравствуйте, Pavel M., Вы писали:

PM>По TcpChannel все работает.

PM>Я где-то не настроил права?

tokenImpersonationLevel
Re[2]: Service и IpcChannel
От: Pavel M. Россия  
Дата: 20.09.06 13:00
Оценка:
Здравствуйте, Mika Soukhov, Вы писали:

MS>Здравствуйте, Pavel M., Вы писали:


PM>>По TcpChannel все работает.

PM>>Я где-то не настроил права?

MS>tokenImpersonationLevel


можно чуточку поробнее, как применить?
--------------------------
less think — do more
Re[3]: Service и IpcChannel
От: Mika Soukhov Stock#
Дата: 20.09.06 13:19
Оценка:
Здравствуйте, Pavel M., Вы писали:

PM>Здравствуйте, Mika Soukhov, Вы писали:


MS>>Здравствуйте, Pavel M., Вы писали:


PM>>>По TcpChannel все работает.

PM>>>Я где-то не настроил права?

MS>>tokenImpersonationLevel


PM>можно чуточку поробнее, как применить?


<configuration>
  <system.runtime.remoting>
    <application>
      <channels>
        <channel ref="ipc client" secure="true" tokenimpersonationlevel="Impersonation" />
      </channels>
    </application>
  </system.runtime.remoting>
</configuration>
Re[4]: Service и IpcChannel
От: Pavel M. Россия  
Дата: 21.09.06 05:54
Оценка:
Здравствуйте, Mika Soukhov, Вы писали:

MS>Здравствуйте, Pavel M., Вы писали:


PM>>Здравствуйте, Mika Soukhov, Вы писали:


MS>>>Здравствуйте, Pavel M., Вы писали:


PM>>>>По TcpChannel все работает.

PM>>>>Я где-то не настроил права?

MS>>>tokenImpersonationLevel


PM>>можно чуточку поробнее, как применить?


MS>
MS><configuration>
MS>  <system.runtime.remoting>
MS>    <application>
MS>      <channels>
MS>        <channel ref="ipc client" secure="true" tokenimpersonationlevel="Impersonation" />
MS>      </channels>
MS>    </application>
MS>  </system.runtime.remoting>
MS></configuration>
MS>


хм, краткость сестра таланта, но куда этот конфиг сунуть? Извиняюсь за непонимание, но все-таки. И еще вопросик, как это не в конфиге, а программно применить
--------------------------
less think — do more
Re[5]: Service и IpcChannel
От: Pavel M. Россия  
Дата: 21.09.06 06:37
Оценка:
Здравствуйте, Pavel M., Вы писали:



MS>>
MS>><configuration>
MS>>  <system.runtime.remoting>
MS>>    <application>
MS>>      <channels>
MS>>        <channel ref="ipc client" secure="true" tokenimpersonationlevel="Impersonation" />
MS>>      </channels>
MS>>    </application>
MS>>  </system.runtime.remoting>
MS>></configuration>
MS>>


PM>хм, краткость сестра таланта, но куда этот конфиг сунуть? Извиняюсь за непонимание, но все-таки. И еще вопросик, как это не в конфиге, а программно применить


Подсказка =)

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

--------------------------
less think — do more
Re[6]: ПОМОГИТЕ =)
От: Pavel M. Россия  
Дата: 27.09.06 12:49
Оценка:
Здравствуйте, Pavel M., Вы писали:

PM>Здравствуйте, Pavel M., Вы писали:



PM><configuration>

PM> <system.windows.forms jitDebugging="true" />
PM></configuration>
PM>[/q]


написал я конфиг и положиле его рядом со своей службой — НЕ РАБОТАЕТ! =) А еще написал обычных два десктопных приложения — работают без всяких конфигов! Что делать??? Очень хочется со службой по IPC говорить, а не по TCP !
--------------------------
less think — do more
Re[7]: ПОМОГИТЕ =)
От: KazakovAV Россия  
Дата: 21.12.06 07:18
Оценка: 17 (2)
Столкнулся с похожей ситуацией:
1. Сервер — сервис, работает по системным пользователем
2. Клиенты работают под текущим пользователем.
3. Используется IPC и нельзя использовать конфигурационный файл.

Решать пришлось 2 проблемы:
1. Собственно ремотинг между IPC под разными пользователями и что
программный комплекс ставится на Windows с разными локализациями.

Код сервера

Нужно чтоб досутп к серверу был по Everyone, а Everyone в Русской версии зовется
"Все", по этому примеры найденные в Гугле не работали.
По этому сначала узнаем как зовут "евривана" на данном PC
SecurityIdentifier si = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
IdentityReference ir = si.Translate(typeof(NTAccount));

Потом собственно регистрируем канал IPC
// Регистрируем канал IPC сервера.
IDictionary poroperties = new Hashtable();
poroperties["name"] = "ipc";
poroperties["portName"] = "MyIPCPort";
poroperties["exclusiveAddressUse"] = "false";
poroperties.Add("authorizedGroup", ir.Value);//"Everyone");
poroperties.Add("secure", "True");
poroperties.Add("impersonationLevel", "Identification");
IpcServerChannel ipcServerChannel = new IpcServerChannel(poroperties, serverSinkProvider);
ChannelServices.RegisterChannel(ipcServerChannel, true);

Код клиентов:
IDictionary properties = new Hashtable();
properties.Add("name", "IPC Client Channel");
properties.Add("impersonationLevel", "Identify");
IpcClientChannel clientChannel = new IpcClientChannel(properties, new BinaryClientFormatterSinkProvider());
ChannelServices.RegisterChannel(clientChannel, true);

Примечание:
1. Инициализация через Hashtable — это "аналог" конфигурационного файла.
2. Как уже говорилось ранее true у RegisterChannel д.б. на клиенте и сервере.
... << RSDN@Home 1.2.0 alpha rev. 655>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.