ASP.NET MVC;компиляция в x64 против anyCPU для 64 бит, разница? - PullRequest
0 голосов
/ 24 октября 2018

Я использую Visual Studio 2017, ASP.NET 4.7 и MVC 5 для разработки под IIS Express и службы приложений Azure.

В настоящее время она 32-разрядная.Я хочу преобразовать его в 64-битный

Я вижу 2 варианта:

  1. Явно устанавливая x64 в конфигурации решения через вкладку «Активный».

  2. Явно задайте AnyCPU в конфигурации решения через вкладку «Активные».

Я установил IIS Express на 64 бита и настрою службу приложений Azureэкземпляр на 64 бита.

У меня такое ощущение, что 2) - это лучшая практика, так как целевая битность веб-сервера будет получена.

Может быть несколько сторонних 32-битных dll, если это используетсяимеет значение.

Спасибо.

1 Ответ

0 голосов
/ 24 октября 2018
  1. Если в вашем проекте используется только управляемая библиотека DLL или пакет Nuget, тогда подойдет любой процессор.AnyCPU означает, что во время выполнения он будет выбирать 64-битную или 32-битную версию в зависимости от разрядности вашего процессора.

  2. Теперь, если вы явно хотите сказать, что ваша программа должна работать в 32-битном или 64-битном режиме, вам нужновыберите этот конкретный профиль.

    Например: я использую неуправляемую DLL, и она специально написана для 64-битной системы, тогда AnyCPU создаст проблему, поскольку она не решается во время компиляции.То же самое относится и к 32-битному.Здесь мы явно пытаемся сказать, что он должен работать в определенном профиле разрядности.

  3. На уровне IIS эта конфигурация также доступна, как вы можете настроить 32-битную dll для запуска на уровне пула приложений.

Обновление после комментария.

  1. Если вы ищете 32-битный экземпляр для Службы приложений, тогда их всего несколько.Бесплатная и общая.Больше всего 64 бит.

Примечание: 1. В реальной жизни я также сталкивался с такой проблемой, при которой приложение Azure зависит от 32-разрядного, а наш уровень был 64-разрядным.2. Если вы пойдете немного вперед и выберете VM, тогда вы получите все опции.

...