Как создать приложение C # MVC с 32-разрядной сборкой для запуска на x64 Server 2008 - PullRequest
3 голосов
/ 28 января 2010

У нас есть приложение MVC, которое зависит от ряда сторонних продуктов (например, Crystal, Topaz). На устройстве подписи Topaz доступны только 32-битные .dll. Поэтому я предполагаю, что мне нужно собрать и развернуть приложение на IIS 7 в 32-разрядном пуле приложений.

Если это предположение верно, то мне нужно собрать приложение MVC с настройкой компилятора VS2008 «x86» (сейчас я использую «Any CPU»?

Кроме того, все ли указанные сборки также должны быть 32-разрядными? Если да, как я могу получить 32-битные файлы MVC на x64 Server 2008?

Наконец, как мне сделать inetpub / directory x86 дружественным, или это волшебным образом происходит как-то иначе?

Ответы [ 3 ]

1 голос
/ 28 января 2010

Если это предположение верно, тогда сделайте Мне нужно собрать приложение MVC с Настройка компилятора VS2008 на "x86" (сейчас я использую "Любой процессор"?

Вы можете установить его на любой процессор, и он будет работать на 32-битной или 64-битной системе, в зависимости от настроек пула приложений и до тех пор, пока ваши другие зависимые библиотеки также скомпилированы с «любым ЦП»

Также делайте все ссылки на сборки также должен быть 32-битным? Если да, то как я могу получить 32-битные файлы MVC на x64 Server 2008?

Если вы используете неуправляемый код (или эталонные сборки), вам нужно получить конкретную 32-битную и 64-битную версию этой сборки. Если у вас есть 32-битные сборки и если вы включите 32-битные приложения в своем пуле приложений, они будут работать в режиме WoW64

другая ссылка: http://blogs.msdn.com/gauravseth/archive/2006/03/07/545104.aspx

Если у вас версия x64, они будут работать как 64-битные

Устройство для подписи Topaz имеет только 32-битные .dll доступны. Так что я предполагаю что мне нужно построить и развернуть приложение в IIS 7 в 32-разрядном пуле приложений.

Как вы это проверили? Вы использовали Corflags.exe? Вы можете узнать больше об этом здесь . Независимо от вашего PE-заголовка (PE32 или PE32 +), если ваш 32BIT установлен в 0, вы можете запустить его в 64-битном пуле приложений. Даже если он установлен в 1 и если он не подписан, вы можете установить его в 0 ( но, возможно, не стоит рисковать) и запустите его на 64-битном пуле приложений

1 голос
/ 28 января 2010

Имеет ли значение, если ваше приложение MVC работает как 32-битное? Или у вас есть веская причина попробовать перейти на 64-битную версию?

Если вы можете жить с 32-битной версией, скомпилируйте все свои сборки как x86. Когда вы настраиваете IIS на x64 server 2008, убедитесь, что для «Расширенные настройки» в вашем пуле приложений задано значение «Включить 32-разрядные апплэкции».

Patrick

0 голосов
/ 28 января 2010

Если это предположение верно, тогда сделайте Мне нужно собрать приложение MVC с Настройка компилятора VS2008 на "x86" (сейчас я использую "Любой процессор"?

Да, совершенно правильно.

Также делайте все ссылки на сборки также должен быть 32-битным? Если да, то как я могу получить 32-битные файлы MVC на x64 Server 2008?

Нет необходимости, если эти сборки построены как ЛЮБОЙ ЦП, то .Net Framework разрешит его до 32 бит, если ваша входная сборка 32 бит.

Наконец, как мне сделать inetpub / каталоги x86 дружественные, или делает это волшебным образом происходит как следствие что-то еще?

Это просто происходит волшебным образом.

...