Проект ASP.Net перестает работать правильно при передаче на 64-битный сервер Win2k8 - PullRequest
0 голосов
/ 21 ноября 2011

У меня очень странная проблема с проектом ASP.Net с использованием Entity Layer, Data Layer и Service Layer, сгенерированных с использованием .netTiers 2.3.1. Проект работает нормально на моей машине (32-битная WinXP-машина с IIS 6; эта машина используется для компиляции в режиме «Любой процессор»), но когда я переношу скомпилированный проект на Windows 2k8 (64-битная, IIS 7) сервер, он больше не работает должным образом.

У меня есть страница с FormView для вставки новой строки в таблицу, которая отлично работает на моем компьютере, но не работает на сервере или на компьютере коллеги, работающем под управлением Windows 7 (IIS 7). Я использовал профилировщик SQL Server, чтобы отследить проблему, и я вижу, что запрос вставки и другие запросы отправляются на сервер должным образом, но данные не вставляются в базу данных. Его там нет, когда я его ищу. Это как если бы транзакция не была зафиксирована.

Кроме того, после вставки я выполняю больше запросов в источнике данных и обработчиках событий Onviewserted формы. Однако один из этих запросов блокирует последующие запросы. Если я удаляю код, инициирующий запрос на блокировку, то это просто следующий запрос, который становится запросом на блокировку. Как я уже сказал, все это работает нормально на моей машине, и когда я передаю aspx-страницы и двоичные файлы на сервер, он перестает работать правильно. У кого-нибудь была такая проблема?

ОБНОВЛЕНИЕ: Это проблема не 32-битной, а 64-битной, а скорее проблема IIS 6 в сравнении с IIS 7.

1 Ответ

0 голосов
/ 23 ноября 2011

Я узнал, что случилось.Я пропустил следующую строку в подразделе раздела в моем файле Web.config:

<add name="MyProject.Web.Data.EntityTransactionModule" type="MyProject.Web.Data.EntityTransactionModule" preCondition="" />

Это не имеет значения при использовании IIS 6, но при использовании IIS 7.

Добавление строки выше также можно выполнить с помощью интерфейса IIS 7, перейдя в раздел «Модули» веб-сайта и нажав «Добавить управляемый модуль» ...

...