Не удалось добавить ссылку на службу - заблокировано/доступно только для чтения

Всякий раз, когда я иду добавить ссылку на службу, я получаю сообщение об ошибке:

Не удалось добавить ссылку на службу 'Servicereference1.reference'
Ошибка: невозможно проверить текущий файл. Файл может быть доступен только для чтения или заблокирован, или вам может потребоваться проверить файл вручную.

У меня уже была ссылка на службу в проекте, но она как-то сломалась и сообщила мне об ошибке:

Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт (servicename)

Конечные точки как в файле web.config, так и в справочной системе сервиса были одинаковыми (localhost)

Я также не мог обновить эту ссылку, так как я бы получил ту же ошибку "не удалось проверить текущий файл".

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

Ответ 1

У меня была такая же ошибка: я обнаружил, что есть проблемы, если у вас есть плагин управления версиями "Microsoft Git provider" (мое решение WCF не было добавлено в исходный контроль!), и вы пытаетесь добавить ссылку на службу.

  • установить плагин управления версиями на None
    • перейдите в ИНСТРУМЕНТЫ > Параметры > Управление источником.
  • добавить ссылку службы
  • установите плагин источника управления в исходное значение

Ответ 2

Я знаю, что на это был дан ответ, но прежде чем пробовать все остальное в ответах, перезапустите визуальную студию. Это произошло со мной и с четырьмя другими людьми в моем классе WCF. Кажется, это проблема с визуальной студией 2013 года, а не с 2012 годом.

Ответ 3

Как вы уже очистили, не задействован контроль источника (что, по-видимому, является причиной для меня проблемы), вы можете попробовать следующие шаги:

  • Убедитесь, что вы скопировали вставку из местоположения, где был источник, а затем удалили определенные файлы управления источником.

  • Убедитесь, что папка не заблокирована, а также не доступна только для чтения. Если это так, то удалите только чтение из папки.

  • Убедитесь, что визуальная студия не находится в режиме отладки при добавлении ссылки.

  • Если выше не работает, закройте визуальную студию и перезапустите ее.

  • Убедитесь, что Visual Studio запущена как "Запуск от имени администратора".

  • Наконец, если все вышеописанное не работает, попробуйте перезагрузить компьютер.

Сообщите мне, работает ли это или нет.

Ответ 4

Возможно, это немного поздно, но если у кого-то такая же проблема, я решил запустить VS2013 в качестве администратора.

Ответ 5

Перейдите в меню Отладка и нажмите (Параметры и настройки)

debug

Выберите Управление источником.

В разделе Текущий источник Выпадающее меню ControlPlug выберите none

none

Затем нажмите ok, чтобы сохранить chnages. Теперь вы можете добавить ссылку на службу.

Ответ 6

Похоже, что какой-то файл Visual Studio поврежден. Попробуйте полностью удалить ссылку, затем сгенерируйте ссылку, используя svcutil {http://{service}/metadataEndpoint} (я предполагаю, что это WCF) или (используйте wsdl.exe для веб-сервисов), затем получите клиентский прокси и поместите его в проект использовать его. Посмотрите, хорошо ли это работает.

Ответ 7

Отключение исходного элемента управления по умолчанию для добавления ссылки ужасно. @ScottG сказал выше и работает. Просто запустите VS как администратор - это работает, и вам не нужно возиться со своей средой. В VS 2013 UP-5 все еще есть эта проблема.

Ответ 8

Проверьте, что ваши файлы только для чтения, если да, удалите атрибут только для чтения и перезапустите визуальную студию и попробуйте добавить ссылку на службу. это сработало для меня вот так.

Ответ 9

Убедитесь, что ваша папка в IIS, где ваши службы помещены (я имею в виду физический файл;.svc), не открыта или даже не выбрана в диспетчере файлов. Это работает для меня, но прежде чем я почти сошел с ума, чтобы найти ошибку.