Проблемы с использованием веб-сервиса на ASP.NET на рабочем сервере (IIS)
-
13-09-2019 - |
Вопрос
Мы внедрили некоторый клиентский код SOAP на нашем сайте ASP.NET который вызывает удаленную службу.Реализация была в основном выполнена с помощью мастера "Добавить веб-ссылку" Visual Studio, добавив в код соответствующее 'using remote.service.namespace' и вызвав службу.
Код отлично работает локально (из Visual Studio), но на рабочем веб-сервере происходит сбой из-за ошибки отсутствия ссылки на сборку:
CS0246:Не удалось найти тип или имя пространства имен 'remote.service' (вам не хватает директивы using или ссылки на сборку?)
У меня есть подлое подозрение, что я не все развертываю должным образом, может быть, кто-нибудь может указать, чего мне там не хватает?
Спасибо!
Дополнительная информация:
Проект - это веб-сайт.
ASP.NET версия 2.0 установлена и используется в качестве целевой как на dev box, так и на production server.
Прокси-файл, созданный WSDL.exe, развертывается в корневой папке веб-сайта, той же папке, где находится страница.Глобальное пространство имен (по умолчанию) использовалось для генерации прокси-класса.
Решение
Если это проект веб-сайта, то прокси-файл должен находиться внутри папки App_Code
Другие советы
Вы упомянули, что прокси-библиотека dll размещена в "корневой папке веб-сайта, где находится страница".
Вы должны поместить dll-файл в папку "bin".Если папки там нет, создайте ее.
Клиентский стек веб-службы в .NET генерирует прокси-клиент во время выполнения (из аннотаций в классе, сгенерированном wsdl.exe/svcutil.exe).этот сгенерированный файл обычно оказывается во временных каталогах одного из ваших серверов (где-то под главным деревом Windows есть один).Проблема в том, что ASP.NET учетная запись пользователя не имеет прав на запись в этот конкретный временный каталог, но не замечает этого во время записи файла, поэтому в конечном итоге вы получаете сообщение об ошибке при попытке загрузить созданный файл обратно.Вы можете оказаться в подобной ситуации в зависимости от точного порядка установки на вашем сервере.Как только вы найдете нужный каталог, вы можете просто исправить настройки NTFS в каталоге, чтобы решить проблему.
Вы скопировали папку App_WebReferences и все ее содержимое на сервер?
Работают ли другие части вашего сайта ASP.NET?
Предназначен ли ваш сайт для версии 3.5 и, возможно, версия 3.5 не установлена на рабочем сервере?
Это веб-сайт или проект веб-приложения?Держу пари, это веб-сайт.