веб-сервису не удалось создать ошибку типа с типом в GAC - PullRequest
2 голосов
/ 06 января 2011

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

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

<%@ WebService Language="C#" Class="Company.Project.Assembly.ClassName" %>

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

Моя сборка, на которую указывает директива, развернута GAC, но по какой-то причине arb игнорируется, когдаASMX обслуживается через IIS.Если я скопирую сборку в каталог BIN для приложения, оно будет работать нормально, однако я хотел бы развернуть это решение в качестве обновления веб-части в моей ферме SharePoint, и включение полного доверия в моем приложении - это не тот маршрут, который мне бы хотелосьgo.

Верно ли мое предположение, что файлы ASMX или любой файл, который наследуется от класса в развернутой сборке GAC, игнорируются?Я не понимаю, почему это, насколько я знаю, будет IIS попробовать карту сборки в BIN, если он не может быть найден, он пойдет и опросит GAC, чтобы увидеть, если он может найти его втам, правильно?

1 Ответ

3 голосов
/ 06 января 2011

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

<%@ WebService Language="C#" Class="Company.Project.Assembly.ClassName, Company.Project.Assembly, version=1.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000" %>

Мы также развертываем веб-службы в SharePoint,и это прекрасно работает для нас.

...