我有一个在IIS中的global.asa内运行的ActiveX控件。该控件具有一些BSTR属性,但在服务器的VBScript中,它们似乎有些不正常,就好像VBScript不理解它们是字符串一样。可以检索字符串属性,并将其分配给另一个变量,但不能串联两个字符串。结果可以被描述为未定义的,但实际上是串联的第一个参数。相同的代码在早期版本的IIS中运行良好,但在Windows Server上不再运行了。发生了什么事以及如何解决这个问题?无法在global.asa中读取字符串
编辑:我看到的东西很简单,但很神秘。我可能不看正确的地方。 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();
}
如果您使用Global.asa的适当片段和失败的VBScript代码 – AnthonyWJones 2010-11-19 09:35:52
可能会有所帮助我已更新问题。 – Dialecticus 2010-11-19 11:16:52
我不知道你是复制/粘贴的,但是Dim是resultString,你使用的变量是resutString。你在做global.asa的哪个部分? sessionstart,applicationstart,...? – 2011-05-10 13:46:22