МКС 7 64 бита WS dll - PullRequest
       11

МКС 7 64 бита WS dll

0 голосов
/ 06 декабря 2011

У меня есть серверное приложение DCOM / datasnap (delphi 7), клиентское приложение (вызывающий сервер по httpsrvr.dll) и DLL веб-службы (delphi 7).Эта DLL является вызовом веб-приложения asp.net.Все отлично работает на веб-сервере IIS6 Но проблемы возникли, когда я хочу установить среду IIS 7 64 (Windows Server 2008 RC2 или семь 64-разрядных): 1.вызов http не работает (определение httpsrvr.dll на веб-сайте ISS7) 2.вызов WS на asp.net (2.0) не работает

Я протестировал решение Apache 2.2, работает сервер клиента связи (exe delphi) (httpsrvr.dll в каталоге cache bin apache) с ограничением размера oleVariant(тайм-аут), но я не могу настроить свой веб-сервис DLL.URL-адрес похож на 'http://127.0.0.1/cgi-bin/WABridge.dll/soap/IWABridge (этот URL-адрес является URL-прокси в приложении asp.net).Этот URL не работает в IE (или FF) -> внутренняя ошибка.если я установил 'http://127.0.0.1/cgi-bin/WABridge.dll/IWABridge на FF, я вижу страницу определения wsdl, но файл ошибки 404 не найден на веб-странице asp.net ... TIA, С уважением

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

Как запустить Asapi dll на IIS7.5 (64 бита)

Создание пула приложений

  1. Открыть IIS, Добавить пул приложений
  2. Имени ‘AppPool32’
  3. Изменить свойства:

    • Версия Net Framework: нет управляемого кода
    • Управляемый конвейерный режим: классический
    • Включить 32-битное приложение: True

Разрешить Исапи и Cgi

  1. В корне имени компьютера дважды щелкните Isapi & Cgi Ограничение
  2. Нажмите Добавить
  3. Браузер для вашей Isapi DLL
  4. Проверьте, разрешено ли выполнение пути расширения

Создать приложение

  1. Щелкните правой кнопкой мыши узел Веб-сайты> Веб-сайт по умолчанию и нажмите Добавить Применение ...
  2. Выберите псевдоним, пул приложений и физический путь. пул приложений, который вы выбираете, должен быть "AppPool32", который вы просто создано.

Разрешить выполнение ISAPI DLL в приложении

  1. Выберите узел приложения в виде дерева и дважды щелкните Hander Отображения.
  2. Нажмите Добавить карту сценариев ...
  3. Введите путь запроса * .dll, выберите модуль IsapiModule и дать ему имя. Нажмите ОК.

У меня были некоторые проблемы, такие как

DLL модуля 'C: \ Program Files \ Microsoft \ Exchange Server \ V14 \ ClientAccess \ Owa \ auth \ exppw.dll' не удалось загрузить из-за проблемы конфигурации. Текущая конфигурация поддерживает загрузку только образов, созданных для архитектуры процессора x86. Поле данных содержит номер ошибки. Чтобы узнать больше об этой проблеме, в том числе, как устранить неисправность такого рода ошибок несоответствия архитектуры процессора см http://go.microsoft.com/fwlink/?LinkId=29349.

Перейдите в C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config

Есть изменения

"add name =" kerbauth "image =" C: \ Program Files \ Microsoft \ Exchange Server \ V14 \ Bin \ kerbauth.dll "/>"

в

"add name =" kerbauth "image =" C: \ Program Files \ Microsoft \ Exchange Server \ V14 \ Bin \ kerbauth.dll "preCondition =" bitness64 "/>"

Я использую preCondition = "bitness64"

Это было мое решение. Эта ошибка возникает из-за того, что WebOffice был запущен.

1 голос
/ 06 декабря 2011

Я думаю, что проблема в том, что DLL веб-службы - это 32-битная DLL, которая не может быть загружена 64-разрядным приложением (в данном случае IIS).Вот 2 возможных решения: (1) перекомпилировать DLL как 64-битную DLL, для этого вам потребуется Delphi XE2.(2) если DLL является COM-библиотекой, то можно использовать оболочку Windows для преобразования 32-битной COM-библиотеки в 64-битную.

Первый вариант самый лучший, но его сложно достичьесли у вас есть сторонние компоненты или библиотеки, которые не совместимы с 64 битами.Второй вариант должен работать без какой-либо перекомпиляции, но вы получите некоторое снижение производительности.

...