Поведение GAC на веб-сайте C # с библиотекой VBclass

У меня странная проблема, это установка.

У меня есть библиотека классов, написанная на VB. DLL подписывается и развертывается в GAC. DLL - это оболочка вокруг объекта сеанса, в которой хранится текущий пользователь. Сеанс хранится в базе данных, а не в памяти. У меня есть несколько веб-сайтов, написанных на VB, и я без проблем использую эту dll.

Теперь, когда мы переходим на C #, я добавил новый проект веб-сайта на C # и добавил ссылку на тот же проект dll GAC.

Теперь, когда я использую классы ddl VB на веб-сайте C #, кажется, что веб-сайт C # использует другой сеанс / копию dll?

Итак, мой вопрос: можно ли использовать эту настройку? Возможно ли, что dll VB GAC имеет версию VB и C #? Должны ли веб-сайты VB и C # использовать одну и ту же dll?

ОБНОВЛЕНИЕ: Я проверил SessionID, и действительно, на веб-сайтах VB и C # есть разные идентификаторы SessionID. Хотя оба сайта работают в одном пуле приложений и используют одни и те же параметры сеанса (хранить в базе данных)

Надеюсь, я достаточно ясен, при необходимости предоставлю дополнительную информацию!


person stvn    schedule 04.10.2012    source источник


Ответы (1)


Оба: c # и vb.net скомпилированы в один и тот же MSIL ... не имеет значения, какой язык вы использовали

Пытаться:

  1. Удалите файлы TMP: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ (папка вашего приложения). Остановите appPool раньше!
  2. Если ваша DLL находится в GAC, ее не должно быть в папке BIN вашего веб-сайта (проверьте это). Убедитесь, что вы не установили для параметра «Копировать локально» значение true в свойствах ссылки на DLL.
person Tomino    schedule 04.10.2012
comment
есть идеи, как отключить это в проекте веб-сайта? Я не использую шаблон веб-приложения (устаревший) - person stvn; 04.10.2012
comment
ответьте здесь: stackoverflow.com/questions/2059118/ - person Tomino; 04.10.2012
comment
пробовал все, что вы предлагали. Не работает. Все сайты работают как приложения под одним сайтом / пулом приложений, но по какой-то причине веб-сайт C # генерирует другой идентификатор сеанса, чем веб-сайты VB ?? - person stvn; 04.10.2012
comment
Нетрудно сказать, потому что никто не знает, что на самом деле делает ваша VB DLL. Ответ на ваш первый вопрос: не имеет значения, написана ли сборка на C # или VB, потому что оба они переведены в MSIL. - person Tomino; 12.10.2012