Wsdl никогда не обновляет - PullRequest
1 голос
/ 11 октября 2011

Независимо от того, что я изменяю в службе asmx в Visual Studio, файл WSDL всегда остается неизменным.Удаление методов, изменение сигнатур методов не оказывает никакого влияния, когда я просматриваю определение сервиса.

Ответы [ 4 ]

1 голос
/ 03 декабря 2014

У меня была проблема с симуляцией.

При удалении перечисления и замене его на строку перечисление не удалялось от wsdl.Независимо от того, что я пытался (очистить, перестроить, очистить кеш браузера, другой браузер), он возвращал enum как сложный тип в WSDL.

Решением в моем случае было удаление локальных папок проектачерез проводник Windows, а затем выполнить последнюю версию из TFS.После этого проблема была решена.

Конечно, это решение применимо только при использовании системы sourcecontrol.

0 голосов
/ 03 января 2018

У меня сегодня была та же самая проблема.Это было вызвано GACed-версией сборки, содержащей определения типов, предоставляемые веб-службой.Сначала мне пришлось удалить сборку из глобального кэша сборок, например:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\gacutil.exe" /u YourAssemblyNameWithouthDllExtebsion /f

. Перезапустите веб-сервер, на котором размещен веб-сервис, чтобы перезагрузить новую версию сборки, например, вIIS Express, вы можете уничтожить первый экземпляр процесса с помощью PowerShell:

(Get-Process -Name iisexpress).Kill()

После этого обновленная версия WSDL отображалась, как и ожидалось.

0 голосов
/ 22 мая 2013

Я столкнулся с этой проблемой и нашел решение.

Причина: Когда вы создаете новый проект «Веб-сервис» в Visual Studio, он автоматически добавляет файл «Service1.asmx» в ваш проект. Вы переименовываете этот файл и изменяете объявление класса внутри него, но Studio по-прежнему считает, что это «Service1», а когда-нибудь будет отображаться только определение веб-сервиса для «Service1».

Решение:

  1. Удалите все папки «bin» и «obj» в вашем проекте.
  2. Скопируйте методы из существующего файла asmx в блокнот.
  3. Удалите сервис из вашего проекта.
  4. Добавьте новый сервис в ваш проект с нужным вам именем.
  5. Вставьте код из Блокнота в новый сервис.
  6. Перестроить все

Теперь ваш asmx должен точно отражать ваш веб-сервис и нормально обновляться при будущих сборках.

0 голосов
/ 11 октября 2011

После изменения службы вы должны создать ее и убедиться, что новая версия работает. Один из способов - создать его (и убедиться, что ошибок нет), затем щелкнуть правой кнопкой мыши файл .ASMX и выбрать «Просмотр в браузере».

Кроме того, хотя я уверен, что вы знаете об этом, вам не следует использовать веб-сервисы ASMX для новых разработок. В настоящее время Microsoft считает ASMX устаревшей технологией. Вместо этого используйте WCF.

...