Веб-служба ASMX - «Этот веб-сервис использует http://tempuri.org/ в качестве пространства имен по умолчанию».сообщение - но это не должно быть - PullRequest
6 голосов
/ 24 мая 2010

Я создал веб-сервис с использованием Visual Studio (2005 - я знаю, что я старая школа), и все это прекрасно компилируется, но когда он открывается, я получаю предупреждение:

Этот веб-сервис не соответствует базовому профилю WS-I v1.1.

А кроме того:

Этот веб-сервис использует http://tempuri.org/ в качестве пространства имен по умолчанию.

Что было бы хорошо, если бы мое служение не начиналось так:

 [WebService(Namespace = "http://totally-not-default-uri.com/servicename")]

Поиск по всей папке решения для «tempuri» ничего не возвращает. Я не могу найти это упомянутое на любой странице конфигурации, доступной из Visual Studio. И все же он находится прямо в списке wsdl: определения для атрибута xmlns: tns на странице дескриптора веб-службы, когда я просматриваю его через браузер и в качестве targetNamespace в том же теге. Я просматриваю его в «отладочном» режиме Visual Studio со встроенным сервером.

Похоже, что-то где-то кешируется, но я не могу понять, что и где. Я попытался остановить и перезапустить сервер, очистить и перестроить службу и просмотреть соответствующие текстовые файлы конфигурации с помощью текстового редактора, но нет игральная кость. Есть идеи, что происходит?

Ответы [ 2 ]

6 голосов
/ 25 мая 2010

гм.

Через некоторое время, пытаясь выяснить это, я вернулся к началу и начал подвергать сомнению свои предположения. Обычно в такой ситуации, если никто не находит ответа, я делаю что-то действительно плотное.

Конечно, у меня есть несколько классов в моем файле веб-службы (потому что это заглушка для тестирования и не будет использоваться в долгосрочной перспективе), и у меня был совершенно неправильный класс, названный в моем файле .asmx в качестве вспомогательного код для веб-сервиса.

Как только я это исправил, все заработало нормально.

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

2 голосов
/ 21 марта 2013
  • 1 от меня тоже.У меня была та же проблема, но немного другое решение: моя проблема была в том, что, как и у вас, у меня было несколько классов в одном файле .asmx.cs.У меня были классы данных вверху, класс веб-служб под ними, а атрибут [WebService (Namespace = "...")] находился вверху файла, над классами данных.

Я нашел 2 решения: либо переместить классы данных в свои собственные файлы кода (вероятно, лучше всего), либо, если вы настаиваете на сохранении нескольких классов в одном файле, переместите классы данных НИЖЕ веб-службыили переместите атрибут [WebService (Namespace = "...")] в ПРОСТО ДО ПЕРЕД классом WebService.

...