Как исправить ошибку таргетинга на Server 2016? - PullRequest
0 голосов
/ 11 февраля 2019

НЕ ДУБЛИКОВАТЬ / НЕ ОТВЕТИТЬ В ДРУГИХ НИТЯХ Ни одна из указанных дубликатов не является проблемой, с которой я сталкиваюсь, поскольку у меня уже установлен 4.7.2 на сервере.

У меня есть приложение (wcf service), скомпилированное для 4.7.2.Все проекты в решении предназначены для этой версии платформы.

На сервере (Windows Server 2016) установлена ​​платформа 4.7.2 (и на странице с ошибкой сообщается о версии ASP.NET: 4.7.3282.0).)

Ошибка, возникающая при переходе к службе WCF:

Атрибут 'targetFramework' в элементе файла Web.config используется только для целевой версии 4.0и позже .NET Framework (например, '').Атрибут 'targetFramework' в настоящее время ссылается на версию, более позднюю, чем установленная версия .NET Framework.Укажите допустимую целевую версию .NET Framework или установите требуемую версию .NET Framework.

Вот указанные строки ошибок из веб-конфигурации (ошибка в строке 25):

Line 23: </appSettings>
Line 24: <system.web>
Line 25: <compilation targetFramework="4.7.2" />
Line 26: <httpRuntime targetFramework="4.7.2" />
Line 27: <customErrors mode="Off" />

Если я открываю командную строку и захожу в каталог c:\windows\microsoft.net\framework64\v4.0.30319 и запускаю msbuild -version, он отвечает

4.7.2053.0

Я попытался изменить некоторые настройки пула приложений, но безрезультатно.У кого-нибудь есть идеи?

Редактировать: Страница ошибки (при запуске под localhost) сообщает об этой версии информации: Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3282.0

Редактировать 2: Я понизил все решения в своем проекте до версии4.7, и это, кажется, решило проблему.Я не знаю почему, так как сервер дает все указания, что у него установлен 4.7.2.

1 Ответ

0 голосов
/ 13 февраля 2019

Microsoft в своем бесконечном опыте создания версий считает, что версия MS Build (4.7.2053.0) на самом деле является версией Framework 4.7.Более того, версия, указанная на странице ошибок (4.7.3282.0), на самом деле является версией ASP.NET, которая отличается от версии фреймворка.

Итак, несмотря на все признаки того, что я был на версии 4.7.2(включая нашего администратора сервера, говорящего, что мы были), мы фактически были на 4.7.

После того, как мы установили версию 4.7.2, все заработало.

Одна вещь, которую нужно проверить, - это фактическая версия, которая установлена:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Client

Значение ключа освобождения должно быть 461814 для 4.7.2.

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