2015-08-28 1 views
2

У меня есть проект, который ссылается на 5-7 моих собственных служб WCF, и я столкнулся с очень неприятной проблемой.Пространство имен "Service_References" появляется для ссылок WCF

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

Например, я добавляю ссылку на мой SomeWcfService в моем MyMvcProject. Она будет автоматически генерировать пространство имен

MyMvcProject.SomeWcfService.SomeDataContract 

После часа работы, мне нужно обновить его. Я нажмите кнопку Обновить ссылку и Visual Studio создает обновленный код ... но в пространстве имен

MyMvcProject.Service_Reference.SomeWcfService.SomeDataContract 

Вы можете себе представить, как это раздражает - все using заявления ломаться и я получаю 50+ ошибки компиляции, которые занимают много времени на быть фиксированным. Я нашел решение - обновлять ссылки снова и снова, пока не создаст необходимое пространство имен, но это не решение.

Почему это происходит? Должна быть причина - это не просто случайность. И как это решить?

+0

Не могли бы вы отправить мне простое демо-приложение, которое может воспроизвести проблему? Мой адрес электронной почты: [lali AT microsoft DOT com] (замените AT на «@» и замените DOT на «.»). Кроме того, какая версия вашей Visual Studio? - Lan –

+0

Здравствуйте, с VS2010 У меня точно такая же проблема, как у Yeldar. Иногда прокси генерируется с пространством имен в корне моей сборки, иногда он генерирует его внутри вспомогательного пространства имен «Service_References». Очень раздражает, как вы сказали. Пока не найдено решения. Вы нашли что-то, чтобы исправить это? Спасибо – AFract

+1

@AFract Как упоминалось в ответе, я прекратил использовать служебные ссылки, так как я собирался сделать это за долгое время. Один совет: попробуйте выбрать каталог «Список служб», откройте окно «Свойства» и проверьте, установлено ли его свойство «Поставщик пространства имен» равным false. Это может помочь, но я не уверен, что это так. Кроме того, есть вероятность, что это свойство не является частью VS, а является частью Resharper. –

ответ

0

Я не знаю, что является причиной его, но решение было бы отбросить все ваши ссылки на обслуживание и просто вызовите услуги непосредственно через время выполнения генерируется прокси вернувшийся из ChannelFactory<T>.CreateChannel();

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

Генерация кода, содержащая ссылки на службы, является сложной и изменчивой и, в конечном счете, детерминированной, безусловно непредсказуема и добавляет еще один слой материала, который может пойти не так, как вы думаете в своем клиентском приложении.

 Смежные вопросы

  • Нет связанных вопросов^_^