Проблемы с использованием веб-сервиса на ASP.NET на производственном (IIS) сервере - PullRequest
1 голос
/ 14 июля 2009

Мы внедрили некоторый клиентский код SOAP на нашем сайте ASP.NET, который вызывает удаленный сервис. Реализация в основном осуществлялась с помощью мастера «Добавление веб-ссылки» в Visual Studio, добавляя правильное «использование remote.service.namespace» к коду и вызывая службу.

Код отлично работает локально (из Visual Studio), но не работает на рабочем веб-сервере из-за ошибки ссылки на отсутствующую сборку:

CS0246: Не удалось найти тип или имя пространства имен 'remote.service' (отсутствует директива using или ссылка на сборку?)

У меня есть подлое подозрение, что я не все разворачиваю должным образом, может быть, кто-то может указать на то, что мне там не хватает?

Спасибо!

Дополнительная информация:

Проект - это веб-сайт.

ASP.NET версии 2.0 установлен и используется в качестве цели как на устройстве dev box, так и на рабочем сервере.

Прокси-файл, созданный WSDL.exe, размещается в корневой папке веб-сайта, той же папке, где находится страница. Глобальное пространство имен (по умолчанию) использовалось для генерации прокси-класса.

Ответы [ 6 ]

2 голосов
/ 17 июля 2009

Если это проект WebSite, то файл прокси должен находиться в папке App_Code

1 голос
/ 22 июля 2009

Стек клиента веб-службы в .NET выполняет генерацию прокси-клиента во время выполнения (из аннотаций в классе, создаваемом wsdl.exe / svcutil.exe). этот сгенерированный файл обычно попадает в один из временных каталогов вашего сервера (где-то один находится под деревом главного окна). Проблема заключается в том, что учетная запись пользователя ASP.NET не имеет прав на запись в этот конкретный временный каталог, но не замечает во время записи файла, поэтому в результате вы пытаетесь загрузить сгенерированный файл подать обратно. Вы можете оказаться в ситуации, зависящей от точного порядка установки на вашем сервере. Как только вы найдете правильный каталог, вы можете просто исправить разрешения NTFS в каталоге, чтобы решить проблему.

1 голос
/ 17 июля 2009

Вы упомянули, что dll-прокси находится в «корневой папке веб-сайта, где находится страница».

Вы должны поместить DLL в папку "bin". Если папки там нет, создайте ее.

0 голосов
/ 17 июля 2009

Это веб-сайт или проект веб-приложения? Могу поспорить, что это веб-сайт.

0 голосов
/ 17 июля 2009

Работают ли другие части вашего сайта ASP.NET?

Ваш рабочий сайт 3.5 и, возможно, 3.5 не установлен на рабочем сервере?

0 голосов
/ 14 июля 2009

Скопировали ли вы папку App_WebReferences и все ее содержимое на сервер?

...