Я работаю над новым веб-сервисом WCF, который будет размещен в существующем веб-приложении ASP.NET.Когда я пытаюсь запустить файл .svc для службы, я получаю исключение, что он не может найти файл для сборки.
Не удалось загрузить файл или сборку 'System.IdentityModel, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089 'или одна из ее зависимостей.Система не может найти указанный файл.
Проблема в том, что этот сервис нигде не ссылается на эту (конкретную) сборку.Существует один ссылочный проект, который загружает System.IdentityModel, но он ссылается на версию 3.0.0.0.Фактически все эти проекты нацелены на среду выполнения 3.5, и нигде нет ссылок на какие-либо сборки 4.0.
Вот тег <compilation>
из Web.config для веб-приложения:
<compilation debug="true">
<assemblies>
<clear/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
Примечание. Тег <clear />
был добавлен позже в качестве попытки устранения неполадок.По-видимому, это никак не повлияло на поведение.Я добавил его, потому что на вкладке «.NET Compilation» диспетчера конфигурации IIS сообщалось, что System.Data добавлялся дважды, хотя, очевидно, его нет в этом файле.Добавление <clear />
позаботилось об этом для меня, но я не смог найти его дубликат в Machine.config, и нет базового веб-сайта Web.config, поэтому мне интересно, есть ли где-нибудь, где я неищет, что может быть причиной проблемы.
Сервер работает под управлением Server 2008 с .NET 3.5 SP1.Я получаю ту же проблему (хотя с System.Configuration
вместо IdentityModel, но тем не менее ...) на моей локальной установке IIS, которая находится на Windows 7 x64 с .NET 4.0.
Кто-нибудь знаетпочему он пытается загрузить эту сборку (когда упоминается только версия 3.0.0.0) и что я могу сделать, чтобы исправить ее?