Установка веб-службы Delphi 7 isapi - PullRequest
1 голос
/ 24 июля 2010

Я разработал веб-сервис isapi в delphi 7, и мне нужно установить его на сервере, чтобы он мог использоваться приложением ac #.

Я скопировал dll isapi в папку и создалвиртуальный каталог в IIS сервера.

Когда я вызываю веб-сервис из браузера (http://localhost/webservice/ws.dll), появляется веб-сайт для веб-сервиса, который Delphi создает по умолчанию. Если я создаю Интернетссылка в приложении C # ссылка обычно загружается с использованием URL-адреса, который я предоставил выше.

Проблема заключается в том, что когда я шаг за шагом отлаживаю приложение C #, оно вызывает функцию внутри веб-службы delphi, но не 'ничего не могу сделать. Веб-служба ничего не возвращает.

Я помню, у меня раньше была похожая проблема, и один из способов ее решения - скопировать некоторые DLL-файлы Delphi в папку system32 сервера, на котором я находился.установка веб-службы, но я не помню, какие файлы мне нужно было скопировать, и действительно ли это решает проблему.

Consuming веб-служба не выдает никаких исключений внутри приложения .net.Это просто ничего не делает.Функции ничего не возвращают.

Есть идеи?

1 Ответ

1 голос
/ 24 июля 2010

Проблема была в следующем.

Мой веб-сервис используется для использования веб-службы другого пользователя delphi. Мне пришлось разработать этот веб-сервис, так как есть приложение .NET, которое должно использовать веб-сервис delphi другого парня, но тот, кто его разработал, использовал сложные типы данных, которые не поддерживает .NET. Поэтому мне пришлось разработать свой веб-сервис, чтобы он работал переводчиком. В этом я использовал поддерживаемые типы данных .NET, а приложение .NET использует мой веб-сервис delphi только для того, чтобы использовать веб-сервис другого парня. Это немного грязно, но я не смог убедить другого парня использовать стандартные типы данных. У моего веб-сервиса есть подпрограмма, которая берет URL-адреса SOAP от веб-сервиса другого парня из INI-файла. Я не помню, чтобы я разработал эту процедуру для поиска этого INI-файла по определенному пути.

Процедура выглядит так:

 ifParams:=TIniFile.Create('C:\BancorTranslator\BancorTranslator.ini');
 HostAnula:= ifParams.ReadString('GLOBAL','HOSTANULA','');
 HostDepos:= ifParams.ReadString('GLOBAL','HOSTDEPOS','');
 HostTrans:= ifParams.ReadString('GLOBAL','HOSTTRANS','');
 HostConsu:= ifParams.ReadString('GLOBAL','HOSTCONSU','');

У меня был ini-файл в другом месте, поэтому, когда моя веб-служба пыталась использовать веб-службу другого пользователя, URL-адрес SOAP, настроенный в моей веб-службе, был пустым. Я изменил процедуру поиска ini-файла в той же папке, где размещается мой веб-сервис, и теперь он работает нормально. Нет необходимости копировать файлы в папку system32. Это был мой беспорядок.

Спасибо всем за помощь;)

...