WebService не будет обновляться через ServiceReference - PullRequest
2 голосов
/ 28 декабря 2011

У меня есть два проекта в моем решении Visual Studio: один - это проект приложения WcfService , а другой - обычный C # Silverlight проект с ServiceReference для доступа к веб-службе локально.

В основном все работает нормально, за исключением того факта, что изменения в моем веб-сервисе не видны в моем проекте SL:

Если, например, я изменяю какой-либо атрибут в классе [DataContract] интерфейса службы, оба проекта хорошо компилируются, но при доступе к веб-службе в проекте SL у меня только состояние до изменения.

Просмотр ServiceReference в VisualStudios ObjectBrowser дает мне тот же результат: Моя веб-служба без изменений.

Я добавил ServiceReference в проект SL с помощью встроенной автоматической функции «Добавить ссылку на службу» . Каждый раз, когда я изменяю веб-службу, я нажимаю «Обновить ссылку на службу» на ссылку на службу в проекте SL, что успешно, но безрезультатно. Даже удаление ссылки на службу и добавление ее снова не показывает мне веб-сервис с измененным атрибутом.

Может быть, это потому, что я переименовал сервисный проект несколько дней назад - я выгрузил сервисный проект из решения, переименовал папки в файловой системе и снова добавил его как «существующий проект» в решение. Затем я переименовал файл сервиса (.svc & .svc.cs) и файл интерфейса сервиса. ==> После этого все работает нормально, кроме моих неопознанных модификаций ?! Также при добавлении ServiceReference к этому сервису я вижу старые имена двух файлов, которые я переименовал, а не новые!?

Кто-нибудь знает, что здесь происходит? Заранее спасибо за чтение этого длинного вопроса;)

1 Ответ

3 голосов
/ 28 декабря 2011

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

  • удалите из вашего SL-проекта вашу сервисную ссылку
  • удалите в своей файловой системе все, что связано с сервисной ссылкой, которую вы удалили (т.е. удалите связанные файлы / папки в директорию SL-проекта)
  • также откройте своюФайл SL csproj (или vbproj) с блокнотом и удаление строк, связанных со ссылками на службы (найдите «Ссылки на службы» в файле)
  • создайте новый проект приложения WcfService с нуля и добавьте то, что необходимо дляон (ссылки, файлы ...), поэтому он отражает текущий проект WcfService
  • удалить старый проект WcfService
  • скомпилируйте ваш новый проект WcfService
  • добавьте новый WcfServiceпроект в качестве ссылки на сервис в вашем SL проекте

Хорошо, вы потеряете некоторое время, занимаясь этим, но это будет работать.

...