Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизСервер приложений в виде WebService по Win2003 Найти похожие ветки
← →
neg2001 (2004-03-10 11:18) [0]Возникла проблема. Подскажите пожалуйста, кто знает.
В Delphi был разработан сервер приложений в виде web-сервиса. Для работы с ним использовался стандартный компонент TSOAPConnection. Всё прекрасно работало уже несколько лет на Win2000. Но после переноса этого сервиса на Win2003, сервис перестал работать. Причем страница "Service Info Page" грузится нормально и выдаёт список всех интерфейсов и параметров методов. Но при запросе wsdl, почему-то выдаётся не xml, а сама html страница.
ISS настроен правильно - запуск cgi-скрипта разрешил. Запуск скрипта в происходит с правами админа.
← →
Armen (2004-03-10 13:21) [1]Вот наткнулся на то что CGI/ISAPI программы написанные на Delphi, нормално работающие во всех версиях win, под w2003 начали падать в access violation.
Оказалось, что функция
DWORD GetEnvironmentVariable(
LPCTSTR lpName, // address of environment variable name
LPTSTR lpBuffer, // address of buffer for variable value
DWORD nSize // size of buffer, in characters
);
имеет bug, если lpBuffer==null или nSize=0 то происходит access violation в ntdll.dll.
Патч для Delphi:
в SysUtils.pas меняем функцию GetEnvironmentVariable на этот:
function GetEnvironmentVariable(const Name: string): string;
var
Len: integer;
S : String;
begin
SetLength(S, 1);
Result := "";
Len := GetEnvironmentVariable(PChar(Name), PChar(S), 1);
if Len > 0 then
begin
SetLength(Result, Len - 1);
GetEnvironmentVariable(PChar(Name), PChar(Result), Len);
end;
end;
Перекомпилируем SysUtils.
Должна помочь.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.032 c