Как настроить IIS 7, чтобы позволить удаленному соединению базы данных из веб-сервера ISAPI

StackOverflow https://stackoverflow.com/questions/3902845

Вопрос

У меня есть нативное приложение для веб -службы (ISAPI), которое я создал с Delphi 2010. В настоящее время оно разоблачает только два метода. Первый, EchoString, предназначен для того, чтобы дать мне отзывы о том, что веб -служба функционирует должным образом, и добавляет пару символов к строке, которую я отправляю ему от моего клиента веб -службы Delphi. Это всегда работает нормально.

Второй открытый метод - это тот, который мне действительно интересует. Я передаю этот метод строкую, содержащую содержимое XML ClientDataset. С стороны сервера мой код принимает этот XML и вставляет его в ClientDataSet, после чего он публикует эти данные в базу данных Server-Side.

Я использую компоненты ibexpress (Ibdatabase, Ibtransaction, Ibquery и т. Д.), Для подключения к межбаза базе данных на стороне сервера.

Проблема в том, что, как только я попытаюсь подключить компонент IBDataBase к своей базе данных, веб -метод не работает. Я думаю, что я исключил все остальные источники для этой ошибки. Я могу создавать и заполнить ClientDataSet довольно большим XML ClientDataset, отправленным с клиента, который включает вложенные наборы данных без проблем (я использую блок Midaslib, поэтому ClientDataset не пытается загрузить DLL). Я могу создавать и настроить, за исключением подключения к Ibdatabase и ее различным компонентам. Опять же, без проблем. Как только я установил подключенное свойство компонента Ibdatabase в True из веб -службы, оно не удается.

Я использую IIS 7,5 под Windows 7 64-битной Ultimate (на моей машине развития). Я попробовал предоставление полных контрольных прав каждому (а также конкретно к iis_iusrs) как к определенному ISAPI DLL, а также для всего каталога, в котором находится веб-сервис. Это не решило проблему.

Я подозреваю, что это совершенно выпуск привилегий с IIS 7. Что я могу сделать, чтобы позволить моим веб-службе ISAPI для подключения к клиентскому API Интербазе, чтобы я мог использовать веб-сервис для записи на свой сервер базы данных? «'' '' '' '' '' '' '
Последний скрипт: кажется, что подключение к Интербазе из веб-сервиса не проблема. Я все еще отслеживаю точную причину, но теперь я смогли успешно подключиться к Интербазе из веб-сервиса. Я обновит этот пост, как только я узнаю причину, но этот вопрос больше не действителен. '' '' '' '' '
Я отмечаю ответ Боба как правильный. Строка подключения была неправильной. На самом деле (и это смущающе, но я предпочитаю быть смущенным, чем вводящим в заблуждение), я получил кусочек с пункт.

Я хранил информацию о подключении в строках ресурсов. Я сделал задание в с пункт. Название строки ресурса для свойства базы данных было базовым именем. То с Пункт вызвал назначение свойства имени базы данных, а не значению в строке ресурса. Я исправил проблему, предварительно включив строку ресурса имени базы данных с именем устройства (то есть DatabaseName: = ibmodunit.databaseName;).

Это было полезно?

Решение

Я предполагаю, что вы можете использовать одну и ту же строку подключения для подключения к базе данных Интербазе из «нативных» приложений VCL Forms на этой машине?

Возможно, глупый вопрос, но запускаете ли вы Interbase в качестве услуги? (В противном случае ISAPI DLL не сможет «увидеть» его подключение к нему).

Другие советы

Редактировать
Извини. Я написал глупую вещь, предполагая, что у II не будет разрешений на сетевые разрешенияu003Cduh!> И я не могу удалить этот пост!

Но - я где -то читал, что разрешения на обслуживание на более поздних версиях Windows были несколько уменьшены, а учетная запись Localsystem больше не имеет доступа к сети. Видя, как заголовок Post содержит «удаленное», возможно, вам нужно предоставить дополнительные разрешения на ваш DLL или Сервис и/или межбаз -сервис или один из других задействованных файлов?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top