Сбой веб-службы при ссылке на него на другом сайте в IIS - PullRequest
0 голосов
/ 13 октября 2009

У меня есть веб-сервис на C # 3.5, который прекрасно работает, когда к нему обращаются по адресу http://domain/foo/bar/WS.asmx

В будущем часть / foo / bar может измениться, поэтому я хочу дать людям более стабильный URL, который я мог бы обновлять, не требуя от них каких-либо изменений. Я создал сайт в IIS и установил его домашний каталог, где находится WS.asmx. Теперь, когда я пытаюсь получить к нему доступ с http://domain2/WS.asmx,, я получаю:

Описание: ошибка произошла во время парсинг ресурса, необходимого для обслуживайте этот запрос. Пожалуйста ознакомтесь следующая конкретная ошибка разбора детали и измените ваш исходный файл соответственно.

Сообщение об ошибке парсера: не удалось создать введите 'Namespace.WS'.

Ошибка источника: строка 1: <% @ WebService Language = "C #" CodeBehind = "WS.asmx.cs" Class = "Namespace.WS"%>

Сборки в обоих случаях находятся на http://domain/bin, но когда я прихожу из домена2, кажется, что он не знает, где найти \ bin, которая на 3 папки в файловой системе.

Пространство имен / классы более описательны, я просто сделал их базовыми для целей этого вопроса.

1 Ответ

1 голос
/ 13 октября 2009

Извините, AFAIK, вы не можете извлекать библиотеки DLL из явных путей к файлам вне корня вашего сайта. У вас обычно есть два варианта: 1) использовать каталог / bin текущего приложения (сделать копию / bin другого приложения) 2) поместить DLL в глобальный кэш сборок (GAC)

Кстати, об этом спрашивали в нескольких других местах на SO, например, здесь .

Единственное, что вы можете сделать, если ваши библиотеки / bin используются только внутри / foo / bar /, - это преобразовать их в приложение IIS, а затем переместить библиотеки DLL в новый каталог / foo / bar / bin. Тогда у вас будет только одна копия библиотеки DLL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...