Это запутано.
Мне был передан веб-сайт, написанный на классическом ASP, с большим количеством закулисных вещей, выполненных в объектах VB6 COM +, вызываемых со страниц ASP через экземпляры Server.ObjectCreate (). Для этого воплощения подпрограммы VB6 были преобразованы в VB.NET, просто запустив на них инструмент конвертации Visual Studio 2003, а затем обновив этот файл решения до VS 2008. Таким образом, существует тысяча и один возможный источник ошибок.
Один из модулей VB6, который доставляет мне неприятности, очищает кучу файлов cookie ответа по строкам следующей формы:
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.