Штомесячны архіў: Май 2011

PerformancePoint і памылак 33494

Адзін з маіх кліентаў называюцца сёння, калі іх асяроддзі PerformancePoint (У SharePoint 2010) зламаўся.  Адзін з сервераў прыкладанняў у ферме адчуваў недахоп дыскавай прасторы.  Хоць рашэнне гэтай, Кліент выдалены "занадта шмат" і ПП матэрыялу ўсё перасталі працаваць.  Розных вэб-частак паказалі б "адбылася раптоўная памылка. Памылка 33494. Дадатковыя падрабязнасці былі запісаныя для вашага адміністратара ":

image

Я паглядзеў памылкі і не знайшоў нічога канкрэтнага, каб "Памылка 33494", але гэта Форумы MSDN прызначэнне было карысным: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Я знайшоў ADOMD.NET тут у якасці кампанента ў SQL Server, 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(націсніце каб павялічыць)

Я спампаваць і ўсталяваць, што і гэта ўсё зафіксавана.

Я думаю, што гэта вельмі добры дзівак памылкі, але калі вы націснеце яе, вы па крайняй меры ў вас ёсць магчымасць.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Lists.asmx, GetListItems і тэчак

Я рабіў некаторыя даследаванні для каго-то сёння каля службу list.asmx вэб падаюцца як частка SharePoint 2010 (і больш раннія версіі).  Яна была ў стане атрымаць спіс элементаў у каранёвай тэчцы (у тым ліку імёны подпапок), але не мог атрымаць дэталі ў падтэчку.  Я зрабіў некаторыя азіраючыся на інтэрнэт, і гэта дзіўна агульны пытанне.  Яшчэ, Я не мог атрымаць добры адказ на простае пытанне, "Калі я ведаю, што папка, як я магу атрымаць элементы ў тэчцы?"  Каб быць сумленным, Я не спрабаваў ўсё, што цяжка, так як я хацеў высветліць гэта самастойна на некаторы час ўсмешка.

Каб рэалізаваць гэтую магчымасць, Я стварыў сайт пад назвай "Блогі Сцэнарыі» і карыстальніцкі спіс пад назвай "Асаблівы спіс з ўкладзеных тэчак".  Затым я стварыў тэчкі з назвамі:

  • Год 2005
  • Год 2006
  • Год 2007

Я дадаў некалькі пунктаў у тэчку «Год 2006».  Гэта, як ён выглядае:

image

Мой сябар не піша кода C #, а з дапамогай Java, так SOAP канверце было тое, што яна сапраўды неабходная.  Для атрымання гэтага, Я напісаў трохі JQuery і затым выкарыстаў скрыпача, каб атрымаць фактычнае размове HTTP.

Вось адпаведны JQuery (Я скапіяваў код унізе, калі вы хочаце скапіяваць / ўставіць):

image

Яны першы ключ павінен ўключаць <queryOptions> і <QueryOptions> вузла.  Другі ключ з'яўляецца тое, што <Папка> вузел з'яўляецца URL, да якіх кліент мае доступ.

Там могуць быць і іншыя спосабы, каб атрымаць гэтую, але гэта працуе добра для мяне пры выкарыстанні JQuery.

Вось SOAP канверт для дадзеных:

<soapenv:Канверт XMLNS:soapenv =’HTTP://schemas.xmlsoap.org / мыла / канверт /’>                
  <soapenv:Цела>
    <GetListItems XMLNS =’
HTTP://schemas.microsoft.com / SharePoint / мыла /’>
      <Лісцяны>Карыстацкі спіс з ўкладзеных тэчак</Лісцяны>
      <ViewFields>  
        <ViewFields>
          <FieldRef NAME = 'Назва’ />
          <FieldRef NAME = 'EncodedAbsUrl’ />
        </ViewFields>
      </ViewFields>
      <queryOptions>
        <QueryOptions>
          <Папка>
HTTP://demoserver1/Blogging Сцэнарыі / Спісы / Карыстацкі спіс ўкладзеных тэчак з / Год выпуску: 2006</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Цела>
</soapenv:Канверт>

Шмат прыкладаў і абмеркавання вакол гэтага прывяло мяне да думкі, што ўсё што мне трэба было <QueryOptions> і пакажыце імя тэчкі.  Для мяне, Мне трэба як апрацоўваць яго ў <queryOptions> а таксама пазначыць поўнае URL для <Папка> вузел.

Вось JQuery AJAX ўстаноўкі:

$(дакумент).гатовы(функцыя() {
       быў soapEnv =
           "<soapenv:Канверт XMLNS:soapenv =’HTTP://schemas.xmlsoap.org / мыла / канверт /’> \
               <soapenv:Цела> \
                    <GetListItems XMLNS =’HTTP://schemas.microsoft.com / SharePoint / мыла /’> \
                       <Лісцяны>Карыстацкі спіс з ўкладзеных тэчак</Лісцяны> \
                       <ViewFields> \
                           <ViewFields> \
                              <FieldRef NAME = 'Назва’ /> \
                              <FieldRef NAME = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </ViewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Папка>http://demoserver1/Blogging Сцэнарыі / Спісы / Карыстацкі спіс ўкладзеных тэчак з / Год выпуску: 2006</Папка> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Цела> \
           </soapenv:Канверт>";

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

SPD Workflow Patterns, Саветы і хітрасці

I gave my presentation today at SharePoint Fest in Denver. Here’s the PowerPoint presentation itself: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Lists.asmx, GetList і "Значэнне не можа быць пустым”

Я выявіў, што сёння GetList() метад lists.asmx вэб-сэрвіс павінен быць выкліканы вельмі асцярожна ці гэта схільныя кідаць таямнічы "Значэнне не можа быць пустым" выключэнне (і гэта пры ўмове, вы можаце прайсці яшчэ горш агульнае паведамленне пра памылку, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ быў кінуты ".)  Канкрэтна, Я выявіў, што вы не можаце даць любой прэфікс GetList метад.  У наступным фрагменце JQuery ілюструе той факт,:

image

Калі вы зробіце гэта, вэб-службы адказвае "Значэнне не можа быць пустым", як у гэтым скрыпач-пры ўмове HTTP стэнаграмы:

<?xml version="1.0" encoding="utf-8"?>
  <мыла:Канверт
     XMLNS:мыла ="
HTTP://schemas.xmlsoap.org / мыла / канверт /"    
     XMLNS:XSI = "
HTTP://www.w3.org/2001/XMLSchema-instance"
     XMLNS:XSD ="
HTTP://www.w3.org/2001/XMLSchema">

  <мыла:Цела>
    <мыла:Віна>
      <faultcode>мыла:Сервер</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ быў кінуты.
      </faultstring>
      <дэталь>
        <XMLNS радок памылкі ="
HTTP://schemas.microsoft.com / SharePoint / мыла /">
Значэнне не можа быць пустым.
        </errorstring>
      </дэталь>
    </мыла:Віна>
  </мыла:Цела>
</мыла:Канверт>

Вядома, Вы, напэўна, не хацеў бы дадаць, што "s0" прэфікс па сваім меркаванні, але некаторыя прылады схільныя гэта рабіць (як зацьменне).

Гэта ўсё больш заблытанай / расчараванне, таму што іншыя метады церпяць прэфіксаў.  Напрыклад, the GetListCollection Метад не пярэчыце, калі ён быў прэфікс, нават глупства прэфіксы як "XYZZY":

image

Гэта «значэнне не можа быць пустым", здаецца, даволі часта з lists.asmx так што спадзяюся, гэта дапаможа камусьці ў будучыні.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Бясконцая ўкладзенасць <спраў> Тэгі і JQuery

Гэта падобна на такія дзіўныя тэмы, Я не ўпэўнены, што гэта сапраўды варта блог аб, але гэта ніколі не спынілі мяне раней, так што тут мы ідзем ўсмешка

Я працую на праект, дзе я пацягнуўшы некаторыя дадзеныя з пошуку, упакоўкі яго ў XML-паведамленні, а затым, што XML, у канчатковым рахунку ператвараецца ў HTML з дапамогай XSLT.  Там вельмі шмат JQuery ўдзел, 1 біт, які рэалізуе некаторыя функцыянальныя клавішы табуляцыі.  Пры націску на ўкладцы (на самай справе, a <спраў>), JQuery выклікае. Хаваць() а. шоў() на розных дзівы (першапачатковай загрузкі старонкі загружае усё змесціва таму няма зваротнай перадачы ў гэтым выпадку).

Куча гадзін таму, На ўкладцы пераключэння логікі пачаў працаваць нестабільна і не паказаў бы адзін з маіх закладак.  Я ў канчатковым рахунку, адсочвалі яго да таго, што Internet Explorer (па меншай меры) лічылася, што <спраў> тэгі укладзеныя далёка, значна глыбей, чым intended.The панэлі інструментаў распрацоўніка пакажа:

-<DIV ID = "Tab1Content">
  -<спраў>
    -<спраў>
      -<DIV ID = "Tab2Content">
        -<спраў>
           ..............................
                   </спраў>  <-Нарэшце, паказваць яго зачынілі ўсе шляхі сюды!

Так, калі б я зрабіў $("# Tab1Content").хаваць(), Я таксама схаваць Таб2, і я ніколі не мог паказаць Таб2, калі я не паказваюць таксама Таб1.  Я скапіяваць і ўставіць код на ў Visual Studio, і яна паказала ўсё падшэўка спраў у прыгожа, гэтак жа, як яны павінны рабіць, у такім выглядзе:

-<DIV ID = "Tab1Content">
  +<спраў>
  +<спраў>
-<DIV ID = "Tab2Content">
  +<спраў>
  +<спраў>

Я біцца галавой аб сцяну на працягу некаторага часу і заўважылі, што ў самім кодзе HTML быў выклікаюць шмат пустых <спраў> тэгі, накшталт:

<цела>

  <DIV ID = "Tab1Content">

    <DIV ID = "row1" />
    <DIV ID = "row2" />

  </спраў>

  <DIV ID = "Tab2Content">

    <DIV ID = "row1" />
    <DIV ID = "row2" />

  </спраў>

</цела>

(Вышэй waaaaaaaaaaaay больш спрошчаны.  Пустыя тэгі DIV, цалкам сапраўдныя. Некаторыя з маіх <спраў> тэгі былі поўныя зместу, але многія больш не было.  Я прыйшоў да ўсведамлення таго, што мая <XSL:для кожнага,> дырэктывы выпраменьваючых кароткая форма тэгі DIV, калі XSL:для кожнага, не "знайсці ніякіх дадзеных.  Я вымушаны HTML каментар у выхадны, як паказана на малюнку:

image

 

Пасля таго як я зрабіў гэта, ўсіх спраў ён выбудаваны прыгожа і мой рахунак пераключэння пачаў працаваць.

Як заўсёды, Спадзяюся, гэта дапаможа камусьці ў цяжкую хвіліну.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Quick Fix: "Імя тыпу змесціва" $ Resources:ReportServerResources … не можа ўтрымліваць … адмысловыя знакі”

Я праводзіў некаторы час ачысткі SharePoint 2010 сайт і адно з пытанняў ачысткі ставіцца да карумпаваным / няправільна ўсталяваны SQL Server Report Services пытанне.  Праблема ўзнікла, калі адзін з маіх калегаў спрабавалі выратаваць сайт у якасці шаблону, а затым стварыць стварыць новы сайт на аснове гэтага шаблону.  Аперацыі захавання працавала нармальна, але калі яна паспрабавала стварыць новы сайт, SharePoint адлюстроўваецца наступнае паведамленне пра памылку:

Памылка

$ Імя тыпу змесціва "рэсурсаў:ReportServerResources,DataSourceContentTypeName;"Не можа ўтрымоўваць: \ / : * ? " # % < > { } | ~ & , двух паслядоўных перыядаў (..), або спецыяльныя сімвалы, такія як укладкі.

Вось вечка экрана:

 

image

Я паглядзеў на тыпы кантэнту на сайце і знайшоў:

image

Гэтыя тыпы кантэнту відавочна нездаровы.

Гэтае пытанне, здаецца, прыдумаць шмат на інтэрнэт і не падобна, каб быць адным кансэнсус аб тым, як яе вырашыць.  Я знайшоў зручную табліцу, адлюстроўваюцца імёны дрэнны тып змесціва добрае імя тыпу змесціва тут: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Я ўручную абнаўляць іх канстанты выглядае так:

image

(BrightStarr ў імя, відавочна, дадаткова, але яно не можа пашкодзіць ўсмешка )

Гэта дазволіла мне стварыць новы шаблон і нічога не зламалі на іншых сайтах, у тым ліку некаторыя рэчы PerformancePoint Server, што зусім розныя групы людзей працавалі.  Я быў тады ў стане стварыць новы сайт на шаблоне.  Поспех!

Я не ўпэўнены, што гэта 100% рашэнне, але ён мяне і ўсіх удзельнікаў гэтага мінулага прыкрая памылка.  Калі я пазнаю нешта новае, Я адпраўлю абнаўлення.  Мая нервовасць звязана з тым, што гэтыя імёны не павінны памыляцца ў першую чаргу і, фіксуючы адлюстроўваецца імя, Я не дакранацца да унутраным імем. 

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Адной з прычын для "стваральнік гэтага віна не паказаць прычыну.”

Я рабіў шмат працы з пошукам SharePoint ў апошні час і, у прыватнасці KeywordQuery класа, Уласцівасці і метады.

Калі вы хочаце, каб выніковы набор вяртае вынікі звыш звычайных падазраваных (гл. тут), Вы дадаць яго ў калекцыю SelectedProperties, як у:

myKeywordQuery.SelectProperties.Add("xyzzy");

Вялікае дзякуй і кончыкам капялюш Коры Рот і гэта надзвычай карысны блог (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

У маім выпадку, "XYZZY" у рэчаіснасці не з'яўляецца кіраваным уласцівасцю.  Калі я дадаў яго ў любым выпадку SelectedProperties, SharePoint кінуў адзін з маіх любімых калі-небудзь выключэнняў часу выканання:

"Стваральнік гэтага віна не паказаць прычыну".

Мне асабліва падабаецца сталіца "R" ў Reason.  Гэта гучыць для мяне як. NET эквівалент "У мяне няма рота, і я павінен крычаць."

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Handy Спасылка: Па змаўчанні вынікі пошуку з KeywordQuery

Калі вы выклікаеце выкананне() метад KeywordQuery, Вы можаце стварыць ResultTable на аснове ResultType.RelevantResults.  Гэты фрагмент кода ілюструе тое, што я маю на ўвазе:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

У выніку табліца будзе мець наступныя слупкі дадзеных: 

WorkId
Ранг
Назва
Аўтар
Памер
Шлях
Апісанне
Запіс
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
Contentclass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Я, атрыманыя з гэтага спісу SharePoint 2010 навакольнае асяроддзе, Enterprise Edition.  Спадзяюся, гэта будзе зручна, каб нехта ў будучыні.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Адной з прычын: "Не атрымалася атрымаць CAB-файла ў вырашэнні”

Падчас працы над праектам візуальнай вэб-частцы студыі сёння, Я зрабіў нязначныя паўторнага орг некаторых файлаў, якія будуць змешчаныя ў тэчку _layouts як частка працэсу разгортвання. Канкрэтна, Я пераназваў. JS файл з "TypeAhead.js" на "гарачых клавіш(стары).АТ "  Я планую, каб выдаліць яго, як толькі яго пераемнік "TypeAhead.js" аказваецца правільным.  Выглядала гэта так:

image

Гэта адразу ж выклікала праблемы з Visual Studio, калі я паспрабаваў разгарнуць праект:

Error occurred in deployment step ‘Add Solution’: Не атрымалася атрымаць CAB-файла ў вырашэнні.

Атрымліваецца, што вы не павінны змяшчаць дужкі у імёнах файлаў.  Я зняў дужкі і вырашыць праблему.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin