2015-05-09 11 views
0

Я работаю с веб-приложением ASP.NET, написанным на C#, развернутым в IIS/Windows Server 2008 R2. Приложение использует NHibernate для взаимодействия с базой данных Oracle, работающей на сетевом сервере unix.Записывает базу данных, кажется, не имеет эффекта

Кажется, что записи, сделанные приложением в базу данных, не влияют.

Если я вручную отредактирую значение записи в базе данных Oracle, новое значение будет отражено приложением. Однако, если я попытаюсь изменить значение, используя пользовательскую функцию «сохранить» приложения, изменения не отражаются в базе данных. Кажется, что чтение преуспевает, но записи терпят неудачу.

Почему записи кажутся неудачными?

Дополнительная информация:

не получено никаких очевидных сообщений об ошибках (т. Е приложение не сгенерирует исключение, и это, кажется, по-прежнему работает, как будто все в порядке).

Другой экземпляр этого приложения работает на IIS/Windows Server 2003. Этот экземпляр может записываться в базу данных Oracle (т. Е. Изменения можно сразу увидеть в базе данных с помощью средства просмотра базы данных после нажатия «сохранить»).

Код практически идентичен между приложениями 2003/2008. Однако на сервере 2008 года я использую более новые версии библиотек Oracle, и я изменил целевую архитектуру проектов визуальной студии с «Любой процессор» на «x86» (сервер 2008 года - 64-разрядный, а сервер 2003 - 32- немного).

Отказ от ответственности:

У меня очень ограниченный опыт работы с IIS, NHibernate, базы данных Oracle, Windows Server 2003 и Windows Server 2008 R2. Однако у меня есть немного больше опыта работы с веб-приложениями C#, ASP.NET, базами данных Visual Studio и MSSQL).

+1

Кто знает. Продемонстрируйте код действия настойчивости. – OldProgrammer

+2

Как чистое предсказание, звучит так, будто вы не совершаете транзакцию. –

+0

При всем уважении приложение, работающее на сервере 2003 года, использует тот же самый код сохранения, что и на сервере 2008 года, и записи, безусловно, работают на сервере 2003 года, поэтому я не считаю, что это проблема с кодом (если это не нужно писать по-разному из-за разных условий, но мне это маловероятно). Пожалуйста, поправьте меня, если я ошибаюсь. – yohosuff

ответ

0

Я решил.

Оказывается, один из HttpModules не инициализировался. Это связано с тем, что файл web.config был настроен на IIS6, и приложение выполнялось в пуле приложений, установленном в режиме Integrated Pipeline на IIS7. Переключение пула приложений в режим Classic по существу обеспечило обратную совместимость.

В любом случае, здесь есть ресурс, который помог мне понять это: httpModules not working on iis7