1

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

На сервере (Windows Server 2016) установлен Framework 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):

Строка 23: </appSettings>
Строка 24: <system.web>
Строка 25: <compilation targetFramework = "4.7.2" />
Строка 26: <httpRuntime targetFramework = "4.7.2" />
Строка 27: <customErrors mode = "Off" />

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

4.7.2053.0

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

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

1 ответ1

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .