2010-07-13 38 views
0

當我嘗試深入客戶端應用程序中的多維數據集時,我使用xmlaclient.Discover方法來發現SSAS元數據。當我深入到第7級時,我得到一個系統內存異常。堆棧跟蹤如下 - 這是運行在Windows 2008服務器,2008年ssas服務器上,應用程序在windows 7機器上(全部64位),並且這兩臺機器都有4gb的Ram。xmlaclient.Discover(MDSCHEMA_MODULES,...)系統內存異常

堆棧跟蹤「在 System.String.GetStringForStringBuilder(字符串 值,的Int32的startIndex,的Int32長度, 的Int32容量)\ r \ n在 System.Text.StringBuilder.GetNewString(字符串 currentString,的Int32 requiredLength個)\ r \ n在 System.Text.StringBuilder.Append(字符串 值)\ r \ n在 System.IO.StringWriter.Write(字符串 值)\ r \ n在 System.Xml.XmlTextWriter。 InternalWriteEndElement(布爾型 longFormat)\ r \ n在 System.Xml .XmlTextWriter.WriteFullEndElement(個)\ r \ n 在 System.Xml.XmlReader.WriteNode(XmlTextWriter的 XTW,布爾defattr個)\ r \ n在 System.Xml.XmlReader.ReadInnerXml(個)\ r \ n 在 Microsoft.AnalysisServices.Xmla.XmlaReader.ReadInnerXml(個)\ r \ n 在 Microsoft.AnalysisServices.Xmla.XmlaClient.SendMessageAndReturnResult(字符串& 結果,布爾skipResult個)\ r \ n在 Microsoft.AnalysisServices.Xmla.XmlaClient。 Discover(字符串 requestType,字符串限制, 字符串屬性,字符串&結果, 布爾skipResult,布爾 restrictionsXmlIsComplete,布爾 propertiesXmlIsComplete個)\ r \ n在 Meridium.XMLA.Client.XmlaClientCall.XmlaDiscover(字符串 Discover_type,字符串限制, 字符串的屬性,布爾 isRestrictionsComplete,布爾 isPropertiesComplete)在 C:\ MyData的\項目\ APM V3 \源\ Meridium的\度量\ XMLA \客戶\ XmlaClientCall.cs:線 44" 串

回答

0

發現問題和解決方案:Microsoft.AnalysisServices.Xmla.dll組件既無證不受支持。

支持的方法是使用Microsoft.AnalysisServices.AdomdClient.dll程序集使用GetSchemaDataSet方法,並將AdomdSchemaGuid.Members作爲第一個參數,並將相應的限制對象作爲第二個參數。

如果使用較早的,我們需要創建成員唯一名稱限制和tree_op限制,以防止內存佔用進一步增加。

Nikhil