Проблема доступа к веб-сервису с многопользовательским доступом - PullRequest
1 голос
/ 02 марта 2020

Я создал веб-сервис, вызывающий SQL хранимые процедуры. Фактически это замена предыдущей конечной точки SQL, использующей те же SP, что и конечная точка. Веб-сервис вызывается программой Win32 без HTTPRIO, использующей сервис напрямую, например:

var Service : IApp3TWS;
    Terminal: TTerminal;
begin
  Service  := IApp3TWS1.GetIApp3TWS();
  Terminal := Service.WS_TerminalGet(trm);
  ..
  ..    
end;

IAPP3TWS - это файл pas, созданный импортером WDSL.

Я не являюсь передача любых учетных данных, таких как имя пользователя или пароль. Тем не менее, он работает безупречно с одним пользователем, но не с большим количеством пользователей, одновременно обращающихся к одной и той же службе.

Webservice создается мастером Delphi Webservice и помещается в оболочку TService, также создаваемую с помощью мастера Delphi, и, наконец, устанавливается на сервере (фактически * SQL) как служба (http.sys), а также имя пользователя и пароль, используемые для разрешения службе «входить в систему как служба», также разрешают доступ к базе данных и таблицам SQL. И, как я уже сказал, все работает правильно, когда одновременно вызывается только одна программа Win32.

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

Нарушение прав доступа. Один также получил ADOStoredPro c .Параметр не найден ...

Кто-нибудь знает, что я делаю не так?

...