IIS7 работает на классическом ASP-сайте, использующем компоненты COM + для распределенных транзакций - PullRequest
1 голос
/ 09 декабря 2011

Недавно мы столкнулись с проблемой при переносе нашего веб-приложения с Windows Server 2003 и IIS6 на 32-разрядную версию Windows Server 2008 Standard и IIS7.

Веб-приложение - это классическое приложение ASP, которое использует ряд устаревших компонентов COM + для некоторых операций с базой данных. Сервер базы данных - это БД Oracle 10g, работающая в Linux, а клиент Oracle также 10g.

Проблема в том, что при попытке выполнить вставку / обновление / удаление в транзакции выдается исключение, говорящее о том, что транзакция не может быть зачислена в указанный координатор транзакции. Чтение запросов в порядке. Команды DML также работают нормально, если компоненты COM + настроены так, что не требуют транзакции, но это не совсем вариант для нашей системы.

Я знаю, что MSDTC настроен правильно, так же как и компоненты COM + с точки зрения настроек безопасности и открытых портов (брандмауэр полностью отключен), потому что на том же сервере у нас также есть служба Windows, использующая те же компоненты COM + и тот работает нормально. Я даже зашел так далеко, что предоставил права и разрешения почти каждой учетной записи пользователя на этом сервере как для компонентов MSDTC, так и для компонентов COM +, поэтому независимо от того, какой идентификатор потока выполняет код в IIS, я бы сказал, что он должен быть в значительной степени покрыт. тем.

Уже несколько дней пытаюсь разобраться в этом, и все, что мы могли найти в интернете, это то, что мы уже освещали, например, проблемы с настройкой DTC и брандмауэром. Не уверен, что еще попробовать, особенно, поскольку приложение службы Windows работает нормально при той же настройке сервера.

1 Ответ

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

Может быть это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...