Это запутано.
Мне передали веб-сайт, написанный на классическом ASP, с множеством закулисных вещей, выполненных в объектах VB6 COM+, вызываемых со страниц ASP через экземпляры Server.ObjectCreate(). Для этого воплощения подпрограммы VB6 были преобразованы в VB.NET, просто запустив на них инструмент преобразования Visual Studio 2003, а затем обновив этот файл решения до VS 2008. Таким образом, существует тысяча и один возможный источник ошибок.
Один из модулей VB6, который доставляет мне проблемы, очищает кучу файлов cookie Response по строкам следующей формы:
ASPResponse.Cookies("SysUserCode") = ""
Где ASPResponse определяется как:
Private ASPResponse As ASPTypeLibrary.Response
И был настроен на активацию объекта:
Set ASPResponse = objContext("Response")
При преобразовании этого модуля в VB.NET эти строки стали
ASPResponse = ContextUtil.GetNamedProperty("Response")
и
ASPResponse.Cookies("SysUserCode")() = ""
(обратите внимание на дополнительную пару круглых скобок. Я не очень разбираюсь в VB, поэтому не очень понимаю, что означает этот синтаксис.)
Хорошо, вот вопрос: когда этот код выполняется на МОЕЙ машине, эта строка выдает ошибку VB 13 с Error.Description «Указанное приведение недействительно». Хм? Какой актерский состав?
Кстати, этот модуль отлично работает на машине коллеги, и он не видит никакой разницы в конфигурации моей машины и соответствующих компонентов от его.
Я здесь совершенно в растерянности. Поиск в Google дал мне кучу информации о файлах cookie VB.NET или компонентах COM с VB.NET, но ничего, связанного с классическими файлами cookie ASP.