Kateqoriya Arxivləri: SharePoint İnkişaf

SharePoint ilə əlaqə Bamboo Təqvim "Bir gözlənilməz səhv baş verdi" səbəbləri

Bugün, I’ve been working in an environment that uses a Bamboo calendar web part for some improved collaboration. This a standard medium/small farm with two load balanced WFEs, endeksleme və InfoPath və salxımlı SQL geri sonuna bir "tətbiq server".

The client installed some disaster recovery software onto one of the WFEs and that resulted in a broken WFE for a specific site in the site collection. Whenever load balancing pointed at the affected WFE and that site, users saw a largely blank white screen with the sentence “An unexpected error occurred”. No other info showed, yalnız cümlə.

They asked me to look at it. I easily reproduced the problem and then added a ?contents=1 to the end of the URL. This is how I learned they were using the Bamboo web part. I went back to the page and now, birdən-birə, mənə bir gözəl əxlaqlı səhv baş beledir göstərdi:

image

Mən eklenmesi başqa keçirmək üçün nəzarət səhv mesajı almaq üçün nə baş və ya nə bilmirəm ?contents=1 bit of the query string.

Bu yəqin ki, çox nadir halda kənar ancaq bu mesajı almaq əgər, "Bir gözlənilməz səhv baş verdi" irəli getmək və əlavə ?sorğu simli məzmunu = 1 və rəhbərlik harada görmək.

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Technorati Tags: ,

Microsoft.SharePoint.dll haqqında reflektör istifadə

Redgate .NET Reflector Michael Blumenthal bir qədər qoymuşdur siqnallar və views haqqında məqalə ("Which views can be used when Creating an Alert ?"), which is interesting on its own merits. Lakin, I was even more interested to see how he methodically walks through the process of using Redgate’s .NET Reflector. Step by step, he shows how to use that tool track down how SharePoint determines whether a view on a list should be "subscribable" daha yaxşı bir söz olmaması üçün (he explains this much better than I do 🙂 ).

SharePoint dövründə bu nöqtədə, you’d almost have to be deaf and blind to have not heard or read about using that tool. It’s advanced stuff and my own sense is that it’s in many ways a tool of last resort. Lakin, siz lazım amma həqiqətən bilmirsinizsə necə, Michael yazmaq-up bu mövzuda böyük bir tutorial kimi görünür.

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Təqvim View Calendar maddələr çeşidlənməsi

I’m using a calendar to track panel discussions on a given day. I have two sessions: morning and afternoon. I want to create a view that shows morning sessions only listed alphabetically via a session ID. This is a little tricky to accomplish (Mən Aşkar real bir şey buraxılmış halda).

I can easily create a filtered view showing just that day’s events. The calendar will show all those events and if they all take place on the same hour, it lists them side by side in the hour slot. That’s great. The tricky part is that, by default, it wants to list them in ID format. Belə, if I add "Session 02" and then "Session 01" to the calendar, it shows them in that order (i.e, Sessiya 02 and then Session 01). To list them in Session ID order, I thought to try these things:

  1. Configure the view using the web user interface. No luck. There are no options to sort items this way.

    Since that didn’t work, I am now hoping there’s a CAML query somewhere in there that will allow me to override the sort. CQWP lets me make that kind of change, bəlkə Təqvimə eləcə də olacaq?

  2. Web hissəsi Düzenle, look for an "export" funksiyası və … Bzzz! I can’t export its XML. There is no export option.

    I’m still holding out hope that I can find and modify some CAML query. Since I can’t export the web part, SharePoint Designer yarpağı.

  3. I add the calendar web part to a sandbox site and open that site using SharePoint Designer. I look at the markup for the web part and I find what I’m looking for. It’s encoded madness, lakin o, var: "<ListViewXml …. >kodlanmış dəlilik</ListViewXml>". Xüsusi, there’s this gem:

<Sorğu>
<Harada>
<DateRangesOverlap>
<FieldRef Name="EventDate"/>
<FieldRef Name="EndDate"/>
<FieldRef Name="RecurrenceID"/>
<Value Type="DateTime">
<Month/>
</Dəyər>
</DateRangesOverlap>
</Harada>
<OrderBy><FieldRef Name="Session_x0020_ID" /></OrderBy>
</Sorğu>

(I’ve decoded the &lt;’s and &gt’s and split them out to multiple lines for clarity’s sake).

Add the <OrderBy> bit and now it sorts by Session ID, not the internal list item ID.

GIGANTIC tip o’ the hat to Becky Isserman for her comment to Isha Sagi’s blog post: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. I wouldn’t have put the <OrderBy> in the right place without her comment.

I hope to write this up more clearly with screen shots soon, but in case I never do, at least I did this much.

</son>

SharePoint Xüsusiyyətlər & Solutions Management — CRUD-ci ildə U unutmayın (və ya məsələ üçün D)

Biz kollektiv SharePoint həllər zaman düşüncə böyük sərf — necə yaratmaq, hansı aracı istifadə etmək üçün, onlar yerləşdirmək uğursuz zaman nə olur, timer iş, scopes, və s.. We spend so much time thinking about the up-front bits that it’s easy to forget that we need to retract them as well. Retracting solutions is probably more difficult, from a conceptual design perspective, than deploying them. Deployment is basically a cookbook affair. Typically, install a feature, maybe have a feature receiver load some data into a list, that sort of thing. Lakin, retracting is potentially more complex.

A given solution may create artifacts like these:

  • Content Type
  • List Definition
  • Site Definition
  • Data in a list
  • Even receivers
  • InfoPath forms

The list goes on.

While it’s obviously important to design a solution that instantiates those artifacts correctly, it’s just as important to consider the update and delete cases. If your solution creates a new list and populates that list with data, what happens when the solution is retracted? In some cases, the list should be deleted. In other cases, it should be left intact for historical purposes. Your business requirements will guide you to the right decision.

To help with this, create a matrix that lists each artifact your solution deploys to SharePoint. List three columns per artifact, one for create, update and delete. For each case, determine the correct outcome for that operation.

This sort of analysis is obviously best done before the solution is ever deployed to a SharePoint farm. Lakin, like smoking, it’s never too late to start doing things correctly. Create that matrix and develop a plan to address the missing update/delete scenarios. It may be a hard problem to solve, but at least you’ll have put a box around the problem.

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Technorati Tags:

Quick Fix: SharePoint ilə qarşılıqlı ki, Web Services, InvalidOperationException

Bir milyon il bundan əvvəl, I helped developed a web service that was invoked via a custom action for a SharePoint Designer workflow. Bu həftə, müştəri istehsal üçün hərəkət etmək istədim (nəhayət!) belə ki, biz etdik.

Xüsusi hərəkət çalışır, lakin bu istinad web service vermədi, bizə bu səhv verilməsi:

System.InvalidOperationException: This operation can be performed only on a computer that is joined to a server farm by users who have permissions in SQL Server to read from the configuration database. To connect this server to the server farm, use the SharePoint Products and Technologies Configuration Wizard, located on the Start menu in Administrative Tools.
at Microsoft.SharePoint.Administration.SPWebApplication.Lookup(Uri requestUri)

Turns out that I forgot to add the service to the SharePoint application pool in IIS. Once I did that, o çalışır.

This MSDN forum posting gave me the clue I needed: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</son>

Blog abunə.

Follow me on twitter: http://twitter.com/pagalvin

Technorati Tags:

Tez və asan: SPItemList və SPFolder almaq

Mən istəyirəm, hansı ki, bu problem daxil yayınlanmaya davam və Google anlamaq üçün görünür heç, belə mən bu yazır ki, fiqurlu.

Mən keçən həftə və ya iki hadisə qəbuledici ayıklama bir çox məşğul olduğunuz. The ER is defined against a document library. The individual items in the document library are tightly related to their parent folders. Belə, I am always getting the folder of the item for various manipulations. While debugging, Mən kimin ID bilirəm xüsusi bir maddə üçün bir qovluq metadata yeniləmək üçün lazım.

Burada bir az konsol ərizənin (çiftlikte server yayınlanması nəzərdə) iki dəlilləri edir: obyektinin şəxsiyyət və bir sahəyə təyin etmək dəyəri, "Approval Status". It hard codes a lot of stuff and has no error checking.

Kodu ağır kodlu site görünür, gets a hard coded document library and then finds the indicated item. It then finds the parent folder of that item and assigns the status value.

The key lesson here for me is that SPItem doesn’t get you access to the folder. You need to use SPListItem.File.

Hər bir tənqid təklif və ya obyektinin qovluğu almaq üçün daha yaxşı bir yol təklif umurunda əgər, Şərh tərk edin.

<kod>
istifadə Sistem;
istifadə System.Collections.Generic;
istifadə System.Text;
istifadə Microsoft.SharePoint;
istifadə System.Collections;

Adlar fəzası Conchango
{
    /// <xülasə>
 /// </xülasə>
 sinfi ManualFolderUpdate
    {
        statik ləğv Əsas(sim[] args)
        {
            sim msh = "ManualFolderUpdate (v1.0): "; // msh = "Message Header"

 Təsəlli.WriteLine(msh + "Starting up.  Son 08/04/08 tarixində redaktə edilib.");

            sim url = http://localhost/xyzzy;

            istifadə (SPSite oSPSite = yeni SPSite(url))
            {

                istifadə (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList docLib = oSPWeb.Lists["Documents"];

                    Təsəlli.WriteLine(msh + "Got the document library.");

                    Təsəlli.WriteLine(msh + "Doc lib item count: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    sim NewStatus = "xyzzy";

                    FolderID = Sistemi.Çevirmək.ToInt32(args[0].ToString());
                    Təsəlli.WriteLine("Seeking folder for item: [" + FolderID + "].");

                    SPListItem li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Təsəlli.WriteLine(msh + "Got the parent folder.");

                    NewStatus = args[1].ToString();
                    Təsəlli.WriteLine("Setting status to [" + NewStatus + "].");

                    Təsəlli.WriteLine("Press return to commit the update or CTRL-C to abort.");

                    Təsəlli.ReadLine();

                    thisItemFolder.Item["Approval Status"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Təsəlli.WriteLine(msh + "Finished updating the folder.  Mövcud.");

                } // SPWeb istifadə

            } // SPSite istifadə

 Təsəlli.WriteLine(msh + "Finished.");

        } // Əsas

    } // sinif foldersync
} // Adlar fəzası
</kod>

</son>

Blog abunə.

SharePoint ildə Xüsusi Actions gizlədilməsi

Bir neçə ay əvvəl, bir müşteri üçün bir layihə üzərində iş zamanı, I created a feature. Among other things, ki xüsusiyyət xüsusi bir fəaliyyət müəyyən (Bu site ayarları altında görünür). The only purpose for this custom action was to demonstrate to me that the feature activation was working as expected. Əsasən, I ayıklama bir xam forması kimi istifadə.

Mənim xəcalət çox, kimsə xahiş ətrafında əldə əvvəl bu hata artifact dev dən UAT və istehsal üçün öz yol, "what is this xyzzy link?"

Artıq, biz istehsal edirik və mən, həqiqətən, bu xüsusiyyət aradan qaldırılması istəmirəm, fix elements.xml and then reinstall.

Todd Bleaker pointed out an easy way to handle it. In his words:

"CustomActions are not copied into the database, onlar Elements.xml fayl birbaşa oxumaq və iş zamanı tətbiq dövlət kopyalanır. Belə, siz söndürmək lazım deyil, aradan qaldırılması, yeniden, və CustomAction aradan qaldırılması üçün Feature yeniden. Yalnız Elements.xml fayl aradan qaldırılması və proqram havuzu təkrar(s) həyata. Növbəti dəfə bədii daxilində deyil, siz artıq CustomAction görmezsiniz."

Mən onun riayət və, əlbəttə, onlar iş.

Mənə gəldikdə isə, this is a department level installation with just a single WFE. If you find yourself with this problem in future and with multiple WFE’s, Mən sizə hər dəyişiklik etmək lazımdır iman.

</son>

Blog abunə.

Quick Fix: SharePoint siteye salır [HttpException (0x80004005): Request zaman başa çatmışdır.]

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, amma "birdən-birə" əlaqəli olmayan sayt çox zəif oldu və tez-tez bu səhv ilə başa çatmışdır:

[HttpException (0x80004005): Request zaman başa çatmışdır.]

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 Bu Etibarlı ?məzmunu = 1 debug texnika, Mən əslində idi 11 Səhifənin web hissələri, only two of which were visible. Even better (bir let's-ümid-i tapmaq, bir-çirkin-bura-ki-I-düzeltebilirsiniz baxımdan), o qapalı web hissələri üç "Xəta" bir ad idi.

Mən o web hissələri silindi (bu özü bir təəccüblü uzun çəkdi) and that solved the problem. For today 🙂

</son>

Blog abunə.

Technorati Tags:

WSS dən SSRS Web Services Invoking / FBA Ətraf Mühit MOSS

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: Səlahiyyətli deyil
  • Obyekt köçürülüb

The "object moved" message was most interesting because it was saying that the "object" (bizim SSRS xidmət) had "moved" to login.aspx. This clearly meant we had some kind of authentication problem.

Mən nəhayət mən ki, həyata keçirilir sık bir blog giriş 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 (kimi 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".

Burada bizim üçün çalışıb ki, kod:

ReportingService2006 rs = null; 
// Təsdiq etmək Authentication İcazə = yeni Authentication(); 
auth.Url = "http://URL / _vti_bin / Authentication.asmx";
auth.CookieContainer =
yeni CookieContainer();
LoginResult nəticə = auth.Login("userid", "password");
əgər (result.ErrorCode == LoginErrorCode.NoError) 
{
// No səhv, belə cookies almaq.
CookieCollection cookies = auth.CookieContainer.GetCookies(yeni Uri(auth.Url));
Cookie authCookie = cookies[result.CookieName];
rs =
yeni ReportingService2006();
rs.Url =
"http://server/_vti_bin/ReportServer/ReportService2006.asmx";
rs.CookieContainer =
yeni CookieContainer();
rs.CookieContainer.Add(authCookie);
}
cəhd
{
  rs.CreateSubscription(məlumat, extSettings, Azalan, eventType, matchData, parameters1);
}
tutmaq (Istisna ex)
{
  Console.WriteLine(ex.Message.ToString());
}

Mən hər şeyi bu kimi işləmək üçün şərh:

  • Bizim web hissəsi identifikasiyası xidmət yığmaq və demək lazımdır, "Hey, Tony, mənə var!".
  • Authentication xidməti cavab söyləyərək, "Hey, I know you. How are the kids? Here’s a token."
  • Biz SSRS xidmət zəng və demək, "Tony sent me, burada mö'cüzə var."

</son>

Blog abunə.

Sadə və sadə: C SharePoint Object Model istifadə edilməsi bir web site #

I tried searching for a little snippet code that would show how I can create a new SPWeb in a site collection. I didn’t find it as quickly or easily as I expected so I thought I’d slap together a little entry on the subject.

Bu kod yeni Wiki site yaradır:

 SPSite siteCollection;

    siteCollection = yeni SPSite("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy Title",
        "xyzzy description", 1033, SPWebTemplate.WebTemplateWIKI, saxta, saxta);

My initial searches failed because I was looking for phrases like "provision a web site using sharepoint object model" and the like.

If you axtarış for "Webs.Add()", you’ll find a number of very useful blog entries, MSDN articles and SDK documentation that go into depth on this subject. I definitely recommend this site.

</son>

Blog abunə.

Technorati Tags: