Использовать веб-сервис в приложении asp.net из библиотеки классов - PullRequest
0 голосов
/ 16 февраля 2011

Моя команда и я имеем приложение веб-форм asp.net и используем несколько библиотек классов.В одной из этих библиотек мы пытаемся использовать веб-сервис.Веб-ссылка была добавлена ​​в проект веб-приложения, и соответствующие ссылки были добавлены.Приложение компилируется.При попытке использовать указанный веб-сервис в библиотеке классов учетные данные не работают, и вызов не выполняется.Однако, если мы возьмем вызов веб-службы из библиотеки классов и используем его в веб-приложении, он будет работать.

Есть идеи, почему это не работает в библиотеке классов.

Ответы [ 6 ]

2 голосов
/ 16 февраля 2011

Дважды проверьте, что ваш файл конфигурации содержит правильную информацию для веб-службы.

Попробуйте также изменить поведение URL-адреса на динамическое.

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

"учетные данные, кажется, не работают, и вызов не удается" ... вы можете дать небольшой стек трассировки ошибки?

Просто чтобы уточнить, в моем текущем проекте мы используем конечные точки WCF в библиотеке классов с привязками и учетными данными.То же самое можно сделать для веб-ссылки SOAP ASMX при попытке.

1 голос
/ 03 ноября 2012

Вы можете добавить ссылку на веб-сервис, выполнив следующие действия:

щелкните правой кнопкой мыши проект в обозревателе решений. нажмите Добавить ссылку на сервис нажмите Дополнительно Вы найдете «Добавить веб-ссылку» в конце формы

По решению @AMgdy, он автоматически сгенерирует класс Reference.cs. Он определил все методы веб-сервисов.

1 голос
/ 16 февраля 2011

Определили ли вы какие-либо учетные данные в файле конфигурации в веб-приложении?Если это так, библиотека классов, вероятно, не сможет правильно их получить.Просто предположение, хотя.И Джон Сондерс прав.Кажется, немного задом наперед читая ваше описание структуры ваших приложений.

1 голос
/ 16 февраля 2011

Если вы добавляете ссылку в приложение, а затем потребляете ее из библиотеки классов ... Как вы вызываете библиотеку классов ... добавляя ссылку и вызывая метод библиотеки классов, а затем то, как вы получаете доступ к прокси из библиотеки классовВы должны сослаться на это ... Мне кажется, круговая ссылка.Который не должен быть скомпилирован в первую очередь ... Вы правильно описываете свою структуру ???

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

1 голос
/ 16 февраля 2011

Вы можете добавить ссылку на веб-сервис, выполнив следующие действия:

  1. щелкните правой кнопкой мыши проект в обозревателе решений
  2. нажмите Добавить справочник услуг
  3. нажмите Дополнительно
  4. вы найдете «Добавить веб-ссылку» в конце формы
0 голосов
/ 17 февраля 2011

Может быть, вы назвали это неправильно !! Вот пример:

var serviceName = new ServiceName
    {
        Credentials = new NetworkCredential("Username", "Password", "Domain"),
        Url = "Here you put the correct url of the web service if you published somewhere else"
    };
serviceName.CallWebMethod();

убедитесь, что вы ввели правильное имя пользователя и пароль для доступа к учетным данным и убедитесь, что вы опубликовали веб-сервис в месте, к которому у вас есть доступ.

...