добавление ссылки на службу в Visual Studio 2010 не работает - PullRequest
5 голосов
/ 16 ноября 2010

answer = Проблема была проста: у нас была общая библиотека с функциями. служба была новой функциональностью, которая была использована кем-то из этого общего, и все еще присутствовала в той, на которую ссылается проект. это привело к тому, что у проекта было 2 идентичных пространства имен (одно в общей dll и одно в сервисе).

Сначала возникла проблема с добавлением этой ссылки из-за прав, которые служба имела в IIS. мы исправили эту проблему, однако, при повторном добавлении ссылки кажется, что она только частично добавлена. Он появляется в списке служб, но не в конфигурации приложения, и его нельзя использовать (intellisense не находит его и не печатает вручную).

если мы попробуем это в другом проекте, это добавится идеально, и мы попытались удалить все, что мы можем найти о ссылке, перед ее чтением (подпапка, открытие проекта в блокноте и удаление всех ссылок там), но, похоже, ничего не работает.

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

Кто-нибудь знает, почему это может произойти и возможные решения?

РЕДАКТИРОВАТЬ: Когда мы воссоздаем проект в том же решении и перетаскиваем все классы и т. Д., Мы можем добавлять и удалять эту ссылку по своему усмотрению. хотя это и считается решением, я бы на самом деле хотел бы знать, почему все происходит так, как они произошли, а не заново создавать проекты, когда кажется, что они застряли. Есть ли в visual studio кеш или что-то такое, что могло бы вызвать это?

Также иногда требуется больше времени (или никогда не находит его), чтобы найти службу, а затем в другое время, когда это происходит в течение <1 секунды. лучший способ получить это, кажется, остановиться и начать поиск. не уверен, что это связано, но это похоже на разницу между моим ПК и другим, который мы используем. </p>

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

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

Мы также попытались изменить GUID решения и проектов, и все же, он не правильно добавляет ссылку на сервис в проект.)

** Edit4: при отключении типов повторного использования в ссылочных сборках в Configure Service Reference. Диалоговое окно visual studio добавляет информацию на страницу Reference.cs, оставляя эту страницу пустой. снятие отметки с этого поля добавляет все ссылки к этому файлу и заставляет ссылку на службу работать.

Однако я могу использовать большую часть ссылки, но мне не хватает точки входа, что означает, что я не могу ее запустить.

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

Print Screen of the dialog box

Ответы [ 3 ]

2 голосов
/ 17 ноября 2010

Когда я работал с Service References, я обнаружил, что в дополнение к удалению Service Reference Folder мне пришлось удалить ссылку в app.config, а именно:

<system.serviceModel>
    <bindings>
    a lot of lines...
    </client>
</system.serviceModel>

Может помочь...
Горген

2 голосов
/ 24 ноября 2010

Наконец-то действительно решили это.как сказал Майк Чил в своем комментарии.плохо воспроизвести ссылку

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

Это привело к тому, что у проекта было 2 идентичных пространства имен (одно в общей DLLодин в сервисе).

Итак, просто создайте новый общий dll, добавьте его в проект, и теперь он работает отлично.

1 голос
/ 17 ноября 2010

Я бы начал с удаления всей папки «Ссылки на службу», которая создается, когда Visual Studio добавляет ссылку на службу.

Вы пробовали это?

...