Какой файл machine.config используется моим решением на сервере? - PullRequest
6 голосов
/ 10 февраля 2012

У меня есть приложение asp.net, которое требует некоторого редактирования файла machine.config для правильной работы. На моем компьютере разработчика (под управлением Windows XP) я отредактировал файл machine.config по адресу: «C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727»

Это строка кода, которую я модифицировал, с изменениями (добавив пользователя / пароль):

<processModel autoConfig="true" userName="SYSTEM" password="AutoGenerate">

На сервере (под управлением Windows Server 2003) я внес те же изменения в тот же файл в том же месте. Однако, когда я отлаживаю решение, оно не работает должным образом (ничего не происходит, и время ожидания истекает, та же самая проблема, с которой я столкнулся на своей машине для разработки перед внесением этих изменений в файл конфигурации).

Я пришел к выводу, что мое приложение не использует файл machine.config в одном и том же месте на моей машине и на сервере. Чтобы подтвердить это, я добавил случайные числа в конец имени пользователя и пароля в обоих файлах конфигурации. На моей машине приложение даже не запускается после того, как я это сделаю. На сервере он работает и ошибается до того, как были добавлены случайные числа.

Короче, мой вопрос: как мне определить, какой файл machine.config на самом деле использует сервер, и / или как мне настроить его на использование файла в указанном месте?

1 Ответ

12 голосов
/ 10 февраля 2012

Возможно, ваш сервер является 64-битным сервером, что означает, что он будет находиться в:

C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727

64-разрядная среда выполнения использует другой файл machine.config.Вот основные правила:

  1. ASP.NET 1.x использует %WINDIR%\Microsoft.NET\Framework\v1.1.4322
  2. ASP.NET 2.0 / 3.5 x86 использует %WINDIR%\Microsoft.NET\Framework\v2.0.50727
  3. ASP.NET 2.0 / 3.5 x64 использует %WINDIR%\Microsoft.NET\Framework64\v2.0.50727
  4. ASP.NET 4.0 / 4.5.x x86 использует %WINDIR%\Microsoft.NET\Framework\v4.0.30319
  5. ASP.NET 4.0 / 4.5.x x64 использует %WINDIR%\Microsoft.NET\Framework64\v4.0.30319
  6. Для ASP.NET 5.0, использующего Full CLR, это будет то же самое, что и для местоположений ASP.NET 4.0, поскольку .NET Framework 4.6 - это замена 4.5.Если ASP.NET 5.0 работает в CoreCLR, концепция machine.config отсутствует.

Какая версия ASP.NET, которую вы используете, зависит от вкладки ASP.NET (IIS 6)или AppPool (IIS 7 +)

x64 против x86 зависит от настройки метаданных W3SVC/AppPools/Enable32BitAppOnWin64 для IIS 6 или AppPool в IIS 7.

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