#wcf #visual-studio-2010
#wcf #visual-studio-2010
Вопрос:
Я пытаюсь добавить ссылку на службу, которая есть в моем решении, с установленным флажком «повторно использовать типы в ссылочных сборках».
Проблема в том, что он не генерирует никакого кода, файл reference.cs пуст, и я получаю сообщение об ошибке, в котором говорится, что инструменту не удалось сгенерировать мою ссылку на службу.
Есть еще 2 предупреждения :
Custom tool warning: AssemblyResolveEvent handlers cannot return Assemblies loaded for reflection only.
и
Custom tool warning: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
В чем может быть проблема, и как я могу ее решить?
Спасибо за вашу помощь
—редактировать На самом деле, похоже, что VS ищет где-то какую-то dll, часто, когда я закрываю все экземпляры devenv и повторяю попытку, генерация завершается успешно… Если у кого-то есть идея, откуда берется это странное поведение, я все слышу…
Комментарии:
1. Может ли он сгенерировать ссылку на службу, если вы не установите флажок повторно использовать существующие типы? Если нет, то щелкните правой кнопкой мыши на вашей службе и выберите Просмотр в браузере, возможно, у вас ошибка времени выполнения в вашей службе.
2. Да, если я сниму флажок «повторно использовать существующие типы», это сработает как по волшебству. Служба доступна, и я могу получить wsdl через URL.
Ответ №1:
Для устранения неполадок попробуйте сделать то же самое, но с помощью утилиты командной строки SvcUtil. Попробуйте использовать SvcUtil только с переключателем WSDL, чтобы убедиться, что он сгенерирует прокси-класс. Затем попробуйте, как показано в статье. Вероятно, вам потребуется добавить переключатели multiple -r, чтобы включить все требуемые библиотеки DLL (т. Е. Другие созданные вами сборки, на которые ссылается библиотека DLL вашего проекта).
Используя этот подход, вы либо обнаружите отсутствующую библиотеку DLL, либо обнаружите, что у вас конфликт типов с существующим типом, вызывающий сбой SvcUtil.
Ответ №2:
У меня была похожая проблема при добавлении службы, и я обнаружил, что у меня была ссылка на старую службу, которая больше не существовала в моем приложении. Я попытался удалить ссылку и получил ту же ошибку. Итак, я удалил раздел app.config, упомянутый в ошибке, и снова удалил ссылку, и на этот раз это сработало. После этого добавление ссылки сработало нормально. Я также повторно использовал ссылки и имел ссылки на библиотеки DLL, которые были обновлены, возможно, это было причиной.
В любом случае, кто использует WCF в настоящее время 🙂