У меня есть элемент управления ActiveX, который работает внутри global.asa в IIS. Элемент управления имеет некоторые свойства BSTR, но в VBScript сервера они выглядят как-то неправильно, как будто VBScript не понимает, что они являются строками. Можно получить свойство строки, а также назначить его другой переменной, но невозможно объединить две строки. Результат может быть описан как неопределенный, но на самом деле это первый аргумент конкатенации. Тот же код хорошо работал в более ранней версии IIS, но больше не работает на Windows Server 2008 2003. Что происходит и как это исправить?
РЕДАКТИРОВАТЬ: То, что я вижу, так просто, но так загадочно. Я, наверное, не смотрю в нужном месте. В global.asa это код:
Dim resultString
resutString = MyControl.String1 & MyControl.String2
Любой другой обходной путь тоже не работает, например, сначала присваивают строки временным переменным или заключают строки в CStr (). В проекте ATL это код (некоторые примеры битов):
[id(16), helpstring("property String1")] BSTR String1;
[id(17), helpstring("property String2")] BSTR String2;
...
DISP_PROPERTY_EX_ID(CMyControl, "String1", dispidString1, GetString1, SetString1, VT_BSTR)
DISP_PROPERTY_EX_ID(CMyControl, "String2", dispidString2, GetString2, SetString2, VT_BSTR)
...
BSTR CMyControl::GetString1(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CString strResult;
...
return strResult.AllocSysString();
}