Как обновить ссылку на службу WCF в .NET CORE Web project?

#wcf #asp.net-core

#wcf #asp.net-core

Вопрос:

Я добавил ссылку на службу WCF с помощью

Ссылки на службы -> Добавить подключенную службу -> Предварительный просмотр службы WCF

Он работает нормально, ссылка на службу добавлена успешно. Теперь я изменил службу WCF (добавил новые веб-методы) и хотел бы обновить ссылку на службу, которую я уже создал.

В проекте .net Framework я смог достичь, нажав на «Обновить ссылку на службу». Есть ли у нас эта функция в .NET CORE Project?

Комментарии:

1. На данный момент поддержка WCF в .NET CORE ограничена — возможно, вам потребуется удалить ссылку и добавить ее снова.

2. Тим, это боль, у меня более 10 ссылок на службы. При каждом обновлении службы я должен удалять и добавлять ссылку.

3. Я не знаю, можете ли вы сделать это в .NET CORE, но то, что я сделал с нашим большим приложением, в котором есть несколько служб, — это отказаться от подхода «Добавить ссылку на службу» и использовать ChannelFactory<T> для создания прокси-сервера и любых необходимых каналов для службы. Контракты (интерфейсы), используемые для <T> , поддерживаются в отдельной сборке, которая используется совместно с потребляющими клиентами и сервисными реализациями. Таким образом, при изменении определения службы мне просто нужно убедиться, что обновленная сборка contracts также развернута.

4. @sivaL Вы нашли какое-либо решение для этого?

Ответ №1:

Щелкните правой кнопкой мыши на значке папки, содержащей ваш ConnectedService.json

введите описание изображения здесь

Комментарии:

1. В настоящее время существует [ошибка] [2], которая выдает Version for package dotnst-svcutil «не удалось разрешить» в предварительной версии Core 2.1.

2. Эта опция не существует в VS2022

3. В VS2022 -> Меню проекта -> Подключенные службы -> Управление подключенными службами. В меню «…» в ссылке на службу выберите «Редактировать» и выполните шаги для восстановления.

4. Если не сгенерировано с помощью Visual Studio или, альтернативно, для генерации через командную строку, можно использовать dotnet-svcutil . learn.microsoft.com/en-us/dotnet/core/additional-tools /…

Ответ №2:

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

Комментарии:

1. Я только что попробовал это, используя net core 2.0, и это сработало для меня. Добавлен сервис и используется то же пространство имен, он спросил, уверен ли я, что хочу заменить Reference.cs, подтвердил, и это сработало, новый метод моей службы был добавлен правильно.

2. Мой по какой-то причине не воссоздает файл reference.cs, есть идеи?