Конференция "WinAPI" » Ошибка 1265 и именованные каналы - проблема
 
  • Суслик_ (08.12.09 15:06) [0]
    Здравствуйте.

    1. ЕСТЬ

    Есть сервер в виде системной службы, на котором создается именованный канал примерно так (выдрано из кода):


    var
      kSD: TSecurityDescriptor;
      kSA: TSecurityAttributes;
    begin
      InitializeSecurityDescriptor(@kSD, SECURITY_DESCRIPTOR_REVISION);
      SetSecurityDescriptorDacl(@kSD, true, nil, false);
      kSA.nLength:= SizeOf(kSA);
      kSA.lpSecurityDescriptor := @kSD;
      kSA.bInheritHandle := False;
      _PipeInst := CreateNamedPipe(
         PAnsiChar(kFullPipeName),   // pipe name
         PIPE_ACCESS_DUPLEX          // read/write access
         or FILE_FLAG_OVERLAPPED, // overlapped mode
         PIPE_TYPE_BYTE              // byte-type pipe
            or PIPE_READMODE_BYTE    // byte-read mode
            or PIPE_WAIT,            // blocking mode
         cInstancesCount,            // number of instances
         cBufSize,                   // output buffer size
         cBufSize,                   // input buffer size
         cWaitPipeTimeout,           // client time-out
         @kSA);                      // default security attributes



    Т.е. задаю явно security attr, так чтобы все могли иметь доступ к каналу.

    Есть клиент на другой машине (естественно, он запускается под ограниченной записью пользователя), где я обращаюсь к каналу так:


    kPipe := CreateFile(
      PAnsiChar(kFullPipeName),      // pipe name
      GENERIC_READ or GENERIC_WRITE, // read and write access
      0,                             // no sharing
      nil,                           // default security attributes
      OPEN_EXISTING,                 // opens existing pipe
      0,                             // default attributes
      0);                            // no template file



    Т.е. не задаю явно security attr - вроде как не нужно.

    2. СУТЬ ПРОБЛЕМЫ

    Клиент (г. Саратов) после часа работы (т.е. изначально все работало) получает ошибку:


    ERROR_DOWNGRADE_DETECTED
    1265 (0x4F1)
    The system detected a possible attempt to compromise security. Please ensure that you can contact the server that authenticated you.



    3. ВОПРОС (ы)

    3.1. Может ли причина проблемы состоять в том, что я на клиенте не указываю security attr?

    3.2. Если ответ на п. 3.1 "да", то какие атрибуты мне нужно указать в CreateFile?

    3.3. В чем может быть еще проблема?

    4. ЧТО САМ ИСКАЛ

    4.1. Часть гула просмотрена, ответа не нашел.
  • Игорь Шевченко © (08.12.09 15:38) [1]

    > 3.1. Может ли причина проблемы состоять в том, что я на
    > клиенте не указываю security attr?


    Нет. В противном случае ошибка бы появилась при открытии файла, что противоречит "после часа работы (т.е. изначально все работало)"


    > 3.3. В чем может быть еще проблема?


    В том, что ты не сказал:

    а) откуда получается ошибка.
    б) какие действия предпринимал клиент для получения ошибки.
  • Rouse_ © (08.12.09 15:42) [2]
    445-ый порт в исключения фаервола добавь. Особливо если это стандартный фаервол, бо его вообще не понять он то работает то не работает.
  • Суслик_ (08.12.09 15:55) [3]
    Я поспрашивал пользователя.

    В общем, у них сервер стоит на winxp. Насколько мне известно в WinXP лимит есть на входящие сетевые подключения.

    У, правда, меня подключения не держаться (клиент подключился, клиент спросил, сервер ответил, клиент отвалился). Но их достаточно много, могут, видимо, и накладываться так что возникает превышение лимита.

    Я вот только думал, что код ошибки при превышении лимита должен быть иной.

    ВОПРОС - может ли быть ошибки 1265 использование в качестве сервера НЕсервеной операционной системы Windows?

    И вообще, какой код ошибки должен быть при превышении лимита?
  • clickmaker © (08.12.09 16:02) [4]
    > какой код ошибки должен быть при превышении лимита?

    1220 или 1238?
  • Суслик_ (08.12.09 16:21) [5]
    2Clickmaker
    Благодарю. Да, именно они.

    Значит это не мой случай. Завтра он попробует на Windows Server 2003 мой сервер переставить. Посмотрим, что будет.

    Также сказал, что 445-й порт скорее всего у него Каспер закрывает. Хотя странно это - то работает, то не работает. Судя по моим данным (скриншоту) у него без проблем все работает в течении 2-3 часов. Если блокировка идет порта, то значит не должно работать вообще.
  • Игорь Шевченко © (08.12.09 16:33) [6]

    > Клиент (г. Саратов)


    Клиент в Саратове, а сервер где ?
  • Rouse_ © (08.12.09 16:34) [7]

    > Также сказал, что 445-й порт скорее всего у него Каспер
    > закрывает

    Проверить нужно с обоих сторон. Он может и на твоей стороне закрываться.
  • Суслик_ (08.12.09 16:38) [8]
    Да ни, и сервер и клиент у него - мы продаем комплекс.
    Т.е. я вообще не знаю, что там происходит.
 
Конференция "WinAPI" » Ошибка 1265 и именованные каналы - проблема
Есть новые Нет новых   [134431   +15][b:0][p:0.002]