</канец>
Чэрвеня 2008 SUGDC канферэнцыі — Гэта Wrap
Я прысутнічаў мой першы SharePoint канферэнцыі this past weekend and it was a blast.
Чацвер днём, Я паехаў у Вірджыніі, кіраваўся мой нядаўна набыты $50 GPS appliance plug-in thing to my phone. The device was flawless. After the five hour drive, У мяне было энергіі, каб зрабіць добры прабег на пратэктары млыне, а затым, Яшчэ больш дзіўна, had the energy to head to the lobby for an advertised speaker’s cocktail hour. Conference n00b that I am, it turned out that the cocktail hour was really a ruse to get speakers to show up and help stuff papers and swag into shoulder bags for conference attendees 🙂
Had a hard time sleeping because I was speaking first thing Friday AM. Nervousness, a nagging feeling that I needed to add a slide to my presentation and a very disturbing cat show on Animal Planet kept me up late. Since I went to sleep late, I naturally got up early. I did add a fairly detailed technical architecture slide. It was well worth the effort because the 25 хвілін Q&A would have been very awkward without it. I was lucky to get the first slot in the technical track. Sahil Malik was originally going to speak Friday AM and I was going to speak Saturday but he needed to swap times. This allowed me to do my presentation and then sit back and enjoy everything going forward Friday and Saturday.
The presentation went OK. I definitely have room to improve it. I spoke about how we can access and use web services from a SharePoint Designer workflow using a custom action. Праз некаторы час, Я звяжа гэтую інфармацыю у маю серыю па меншай EUSP.com for End Users trying to get the most use out of that tool. I blew through my slides and demo in 35 хвілін, to my dismay at the time. На шчасце, Q&Была жывы, no doubt helped by the fact that it was early morning before lunch. Q&A is my favorite part of any presentation.
Былі шматлікія цікавыя тэмы, і я спадзяюся ў блог пра іх больш падрабязна на гэтым тыдні (калі дазволіць час, як заўсёды). A fellow from CMS Watch provided a highly critical yet very hopeful review of SharePoint’s position in the market. A different discussion focused on the paucity of SharePoint resources and the difficulty that recruiters have finding good talent that is also "affordable" in this very tight market. The CMS Watch guy referred to the SharePoint human resources pool as being like a "guild." I’m mainly familiar with that term in MMORPG terms and it gave me a little thrill, to be honest 🙂
The highlight of the conference was just meeting and catching up with people I’ve "known" online for a while. The best was sitting at the bar with Бэкі Isserman (MossLover) для 3 або 4 гадзін (і, пасля таго, як перасталі піць на ноч). I don’t often get to talk about На краі Сусвету або Вавілон 5 Канзас-Сіці з жыхарамі.
Боб Фокс быў там, і, як звычайна,, гэта віхура застаўкі, chats and just plain frenetic energy. He invited me to Saturday breakfast with Sahil Malik and that was great.
Субота (дзень 2), Майк Lotter паплёўся на канферэнцыю казаць пра InfoPath, а затым ён далучыўся да Бэкі ў канцы дня, каб зрабіць свайго роду агульнае Q&Сесіі аб 30 да 45 хвілін асноўным засяроджаныя на InfoPath (Майк) and AJAX (Бэкі). I wish Becky had been able to go through her full/formal presentation but I’m sure I’ll get a chance to see that one of these days. I have a feeling she’ll be "hitting the circuit" ісці наперад.
I could go on and on. Two last points — the financial purpose of the conference was to raise money for the Children’s Miracle Network and it raised $5,000. That was awesome. У рэшце рэшт, Я хачу публічна падзякаваць Гэры Блатт, Gary Vaughn and Bob Fox for alerting me to and allowing me to speak at the conference. Вядома, the two Gary’s had a team of people supporting and organizing and all of you were awesome. I had high expectations before I went and it was better than I had hoped for.
Keep on the alert for the next conference scheduled for November 7th and 8th. Aside from some great content, гэта неверагоднае для сустрэчы з усімі тымі асобамі онлайн вы ведалі праз блогі, шчабятаць, Форум, і г.д..
</канец>
FBA і SQL Server: Love Story
My colleague has been working on a web part in an FBA environment. Among other things, the web part pulls some data from SQL server. The grand plan for this project dictates that a DBA configures data level security in SQL (у адрозненне ад укладання ідэнтыфікатар карыстальніка ў запытах SQL або іншы падыход).
The problem is that SQL server doesn’t know anything about our FBA environment so it can’t trust us. We solved this problem by, за адсутнасцю лепшага слова, manually impersonating an AD user so that we could connect to SQL such that SQL data level security works.
Хоць FBA гэта функцыя ASP.NET, мы, людзі, нацыя SharePoint навучылі ў розных пошукавых сістэмах, што калі вы запыце FBA, you must mean you want know how to configure FBA in SharePoint. I failed to find find any information on how to enable an FBA oriented ASP.NET application to communicate with SQL in the way we needed.
У ходзе даследавання гэтага, Мы яшчэ раз прачытаць гэты артыкул: Увасабленне ASP.NET
Дадатковыя даследаванні прывялі нас да гэтай артыкуле codproject: http://www.codeproject.com/KB/cs/cpimpersonation1.aspx
, Якія дапамаглі нам напісаць наш код, which I’ve included below. It’s not the most elegant stuff, але ён працаваў. I hope you find it helpful.
Вось код, які працаваў на нас:
абаронены пустата btnSearchCarrier_Click(Аб'ект адпраўніка, EventArgs электроннай) { старацца { U = ImpersonateUser новы ImpersonateUser(); // УСЕ: Замяніць паўнамоцтвы ("DomainName", "UserName", "Password"); // КОД // iU.Undo(); } злавіць (Выключэнне былых) { } } // Выкарыстанне увасабленне класа, як паказана ніжэй. грамадскасць клас ImpersonateUser { [DllImport("advapi32.dll", SetLastError = праўда)] грамадскасць статычны знешне bool LogonUser( Струнны lpszUsername, Струнны lpszDomain, Струнны lpszPassword, дзесятковага dwLogonType, дзесятковага dwLogonProvider, спасылка IntPtr phToken); [DllImport("kernel32.dll", CharSet = CharSet.Auto)] прыватны знешне статычны BOOL CloseHandle(IntPtr ручкай); прыватны статычны IntPtr tokenHandle = новы IntPtr(0); прыватны статычны WindowsImpersonationContext impersonatedUser; // Калі вы ўключаеце гэты код у DLL, не забудзьцеся запатрабаваць, каб яны // Працуе FullTrust. [PermissionSetAttribute(SecurityAction.Demand, NAME = "FullTrust")] грамадскасць анулявання Impersonate(Радок ИмяДомена, Радок имя_пользователя, Радок пароля) { старацца { // Выкарыстоўвайце некіравальны LogonUser функцыю, каб атрымаць маркер для карыстальнікаў // Указаны карыстальнік, дамен, і пароль. будаўніцтва дзесятковага LOGON32_PROVIDER_DEFAULT = 0; // Праходзячы гэты параметр выклікае LogonUser для стварэння асноўнай маркер. будаўніцтва дзесятковага LOGON32_LOGON_INTERACTIVE = 2; tokenHandle = IntPtr.Zero; // Крок -1 Патэлефануйце LogonUser каб атрымаць дэскрыптар маркер доступу. BOOL ReturnValue = LogonUser( имя_пользователя, Даменнае імя, пароль, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, Нерухомасць tokenHandle); // tokenHandle - новых маркераў бяспекі калі (ілжывыя == ReturnValue) { дзесятковага адстаўцы = Marshal.GetLastWin32Error(); Console.WriteLine("LogonUser call failed with error code : " + права); кідаць новыя System.ComponentModel.Win32Exception(права); } // Крок - 2 WindowsIdentity NEWID = новы WindowsIdentity(tokenHandle); // Крок -3 impersonatedUser = newId.Impersonate(); } злавіць (Выключэнне былых) { Console.WriteLine("Exception occurred. " + ex.Message); } } /// <рэзюмэ> /// Спыняе увасабленне /// </рэзюмэ> грамадскасць анулявання Адмяніць() { impersonatedUser.Undo(); // Вызвалі жэтоны. калі (tokenHandle != IntPtr.Zero) CloseHandle(tokenHandle); } }
</канец>
Ўнясенне ў Lore: SSRS кажа мне “rsAccessDenied”, Але … Я сапраўды маюць доступу
Некалькі тыдняў таму, I was working with my developer colleague on a project involving SQL Server Reporting Services plug-in for MOSS. He was developing a web part that provides a fancy front-end to the report proper (Галоўнай асаблівасцю з'яўляецца разумным пошук ад параметру з некалькімі тысячамі значэнняў пошуку за ім).
Гэта працавала выдатнае ў развіцці навакольнага асяроддзя, але ў прыёмачныя выпрабаванні карыстальнікаў (Уат) навакольнае асяроддзе, it wouldn’t work. Firing up the debugger, мы б убачылі выключэння дэталі як гэта:
Прадастаўленыя карыстачу 'UAT_domain mosssvc' недастатковыя для выканання гэтай аперацыі.(rsAccessDenied).
Калі вы робіце пошук у жывы вышэй памылкі, you find it’s quite common. Scarily common. The worst kind of common because it has many different potential root causes and everyone’s suggested solution "feels" права. We probably tried them all.
У нашым выпадку, the problem was that we had done a backup/restore of DEV to UAT. Somewhere in the data, чагосьці не са спасылкай на "DEV_domain" (замест абноўленага "UAT_Domain"). We created a new site, дадаць вэб-частка, і што вырашылі нашу праблему.
Спадзяюся, гэта будзе выратаваць каго-то гадзіну ці два ўніз па лініі.
</канец>
Quick Fix: Доступ да сайта SharePoint Кідкі [HttpException (0x80004005): Чакання для запыту.]
One of my developer colleagues was working on a project this week and ran into a timeout problem while working on building some crazy web part. His web part was fine, but "suddenly" незвязанай сайт стаў вельмі павольным і часта тайм-аўт з гэтай памылкай:
[HttpException (0x80004005): Чакання для запыту.]
I logged in and saw that several other sites were just fine. I suspected that there were some hidden web parts on the page and using Надзейны ?Змест = 1 адладкі тэхнікі, Я і на самай справе знайсці 11 Вэб-часткі на старонцы, only two of which were visible. Even better (ад let's-надзея-I-знайсці-што-то-нязграбна-вось-што-я-магу-FIX перспектывы), three of those closed web parts had a name of "Error".
Я выдаліў гэтыя вэб-часткі (якая сама прыняла на здзіўленне доўга) and that solved the problem. На сёння 🙂
</канец>
У класе хуткага навучання Цудоўна
Я пачынаю дзень 4 партнёрскіх навучання ў FAST якую ўзначальвае Лары Кей тут, у Needham, Масачусэтс.
Гэты 5-дзённай сесіі разбіваюцца на класы (3 і 2 дзён адпаведна) entitled "FAST ESP: Распрацоўкі карыстацкіх прыкладанняў для пошуку партнёраў па альянсу Я" and "FAST ESP: Developing Custom Search Applications for Alliance Partners II".
Гэта сапраўдны навучальны лагер тыпу класа. Матэрыял глыбока (вельмі, вельмі глыбока). Інструктар (Лары) дакладна ведае сваю справу. I highly recommend this training if you considering it.
</канец>
SharePoint і хуткай — Рыз арахісавае масла кубкі карпаратыўных прыкладанняў?
Я скончыў дзень 2 з хуткага навучання ў сонечным Needham, Масачусэтс, і я распірала ад ідэй (якія ўсе добрыя навучальныя класы са мной зрабіць). One particular aspect of FAST has me thinking and I wanted to write it down while it was still fresh and normal day-to-day "stuff" штурхнуў яе з маёй галавы.
Мы SharePoint WSS 3.0 / MOSS выканаўцы часта сутыкаюцца з жорсткім праблема з любым разумных памераў праекта SharePoint: Як мы можам атрымаць усе немаркіраванай дадзеныя, загружаныя ў SharePoint так, што ўсё гэта ўпісваецца ў нашу ідэальна падыходзяць інфармацыйнай архітэктуры?
Досыць часта, гэта не такая складаная праблема, таму што мы сябе сферу далей ад непрыемнасцяў: "We don’t care about anything more than 3 months old." "We’ll handle all that old stuff with keyword search and going-forward we’ll do it the RIGHT way…" Etc.
Але, what happens if we can’t scope ourselves out of trouble and we’re looking at 10’s of thousands or 100’s of thousands (або нават мільёны) з дакументаў — загрузка і маркіроўку, якая з'яўляецца нашым запаветнай марай?
ХУТЧЭЙ можа быць адказам.
Працэс пошуку ХУТКА ўключае ў сябе шмат якія рухаюцца частак, але адна спрошчаным выглядзе гэта:
- Працэс гусенічным шукае зместу.
- Ён знаходзіць змест і перадае яго да брокеру працэс, які кіруе пулам дакумента працэсараў.
- Брокер працэс перадае яго ў адзін з працэсараў дакумент.
- Дакумент працэсар аналізуе дакумент і па трубаправодзе працэсу, аналізуе bejeezus з дакумента і перадае яго ў тып Process Builder індэкс.
На зоркалёце ХУТКА, we have a lot of control over the document processing pipeline. We can mix and match about 100 Трубаправоды і кампаненты, што самае цікавае, we can write our own components. Like I say, FAST is analyzing documents every which way but Sunday and it compiles a lot of useful information about those documents. Those crazy FAST people are clearly insane and obsessive about document analysis because they have tools and/or strategies to REALLY categorize documents.
Так … Функцыя хуткага пераходу ў спалучэнні з нашымі ўласнымі карыстацкіх кампанентаў трубаправода, we can grab all that context information from FAST and feed it back to MOSS. It might go something like this:
- Дакумент падаецца ў хутка ад MOSS.
- Нармальны вар'ят обсессивно-ХУТКА разбор дакумента і катэгарызацыі адбываецца.
- Нашы ўласныя кампаненты трубаправода падае некаторыя з кантэксту, што інфармацыю з да базы дадзеных.
- Працэс нашага ўласнага дызайну чытае кантэкстнай інфармацыі, робіць некаторыя рашэнні аб тым, каб адпавядаць, што MOSS дакумента ў нашым IA і адзначае яго з дапамогай вэб-службаў і аб'ектная мадэль.
Вядома, няма такой аўтаматызаваны працэс не можа быць дасканалым, але дзякуючы дакучлівай (і, магчыма, вар'яцкія, але-в-добрым-шлях хутка людзі), у нас можа быць рэальнага бою стралялі па-сапраўднаму эфектыўнага працэсу маса грузу, што робіць больш, чым проста запоўніць базу дадзеных SQL з кучай ледзь пошуку дакументаў.
</канец>
Навучанне Аб канчатковых карыстальнікаў У www.EndUserSharePoint.com
Марк Мілер, па меншай http://www.endusersharepoint.com пабудаваў, на маю вопыту, the best end-user focused SharePoint site in the ‘sphere. У мінулым месяцы, he has enlisted some of the premier end-user focused bloggers around to contribute to the "front page" на рэгулярнай аснове, у тым ліку, але не абмяжоўваючыся Пол Culmsee, Крыс Хуткія, і Dessie Lunsford. He has others lined up and ready to contribute as their schedules allow.
Я ўскочыў на магчымасць удзельнічаць і маё першае паведамленне тут. I’m writing a series on how to use SharePoint Designer to create first-class business workflow solutions. In keeping with the EUSP.com’s focus, гэтыя артыкулы заўсёды будзе трымаць Пярэдняя частка карыстальнікаў і цэнтра.
Я асабіста, як правіла, дзеляць свет SharePoint на тры вялікія групы: SharePoint consultants, full-time SharePoint staff developers and end users. When I write, Я часта пытаю сябе, які з гэтых груп могуць быць зацікаўлены ў тэме? Most often, Я заканчваю пісаць для першых двух (тэхнічны) групы, галоўным чынам таму, што я сам кансультант; it’s always easier and more authentic to write about those things with which you’re most familiar on a personal level.
Як я ўжо адзначыў, да, супольнасці канчатковых карыстальнікаў далёка, far larger than the technical community. EUSP.com is top-notch and I heartily recommend it to all three groups. The site’s laser focus is obviously valuable to end users. Аднак, we developers and consultants can only be better at our profession if we can understand and effectively respond to the needs of the end users we serve. Я ведаю, што патрэбна ўся дапамога, якую я магу атрымаць 🙂 Праверце гэта.
</канец>
Выклік службаў SSRS Web з WSS / MOSS ў навакольным асяроддзі FBA
We needed to invoke the "CreateSubscription" method on an SSRS web service that is hosted in an FBA managed MOSS environment from a custom web part. We kept getting variations of:
- 401: Ці не дазволена
- Перамясціць аб'ект
The "object moved" message was most interesting because it was saying that the "object" (нашай службы SSRS) had "moved" to login.aspx. This clearly meant we had some kind of authentication problem.
У рэшце рэшт я зразумеў, што ў мяне было закладка запіс у блогу by Robert Garret that described how to invoke a general purpose WSS/MOSS web service living inside an FBA environment. Note that I can’t link directly to the article (па стане на 06/09/08) because it wants to authenticate. The link I provide brings you to an "all posts" view and you can locate the specific article by searching for "Accessing MOSS Web Services using Forms Based Authentication".
Вось код, які працаваў на нас:
ReportingService2006 RS = нулявы; // Правяраць сапраўднасць Аўтэнтыфікацыі Auth = новы Ідэнтыфікацыя(); калі (result.ErrorCode == LoginErrorCode.NoError) старацца { rs.CreateSubscription(паведаміць, extSettings, па змяншэнні, типСобытия, matchData, parameters1); } злавіць (Выключэнне былых) { Console.WriteLine(ex.Message.ToString()); } |
Я інтэрпрэтаваць рэчы так працаваць:
- Наш вэб-частка павінна набраць службу праверкі сапраўднасці і сказаць, "Hey, Тоні, гэта я!".
- Адказаў служба Аўтэнтыфікацыя кажучы, "Hey, I know you. How are the kids? Here’s a token."
- Заклікаем SSRS службу і сказаць, "Tony sent me, вось маркер."
</канец>
Выканалі вы ваш штомесячны аналіз пошуку?
Гэта добрая практыка, магчыма, нават лепшай практыкі, разгледзець вашыя справаздачы аб пошуку раз у месяц і шукаць магчымасці, каб дадаць лепшыя стаўкі, tune your thesaurus and maybe even uncover some business intelligence that is otherwise hidden to management.
It’s already the 3rd of the month. Time’s awastin’ 🙂
</канец>