我有一個在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