Na môj súčasný projekt, Niektorí používatelia budú cestovať po celom svete a pri ich príchode do rôznych destinácií, použitie akéhokoľvek stroja je šikovný v čase. Tieto stroje, hodnotenie bude spustený Windows a nainštalovaný a nakonfigurovaný pre miestne locale. (Len som si uvedomil, že hodnotenie stroje nemusia mať správne jazykové balíky… asi nebude, v skutočnosti… Som parkovanie ten teraz).
SharePoint musí poskytnúť mechanizmus, ktorým užívateľ môže vybrať preferovaný jazyk a potom MOSS česť jazyka bez ohľadu na to, ako používateľ pristupuje MOSS. Inými slovami, ignorovať, čo prehliadač povie IIS-mach a namiesto vyhľadať tento preferovaný jazyk a používať ho.
Budeme vyšetrovať dva prístupy:
- HTTP Handler: Vlastné HTTP handler nainštalovaný na IIS vyhľadá MOSS profilu používateľa, zistiť jazyk a potom prepnúť HTTP hlavičky okolo podľa potreby pred odovzdaním kontrolou na MOSS.
- Global.asax: Upraviť global.asax urobiť to isté. Môžeme meniť niečo iné, ale myšlienka je, že sme nájsť nejaké miesto, kde môžeme vložiť naše miestne nastavenie-prepínanie logika.
Komplikujúcim faktorom je, že musíme podporu 60k používateľom, o 1,000 ktoré môžu byť súčasne prístup MOSS na vrchol zaťaženia.
Obslužný program protokolu HTTP sa zdá docela drastické, ale možno najlepšie miesto na dal kód, pretože je na úrovni IIS a všetci-vedieť. Je to dobrý jednobodové práce.
My sme nakláňaniu global.asax typ prístupu, hlavne preto, že veríme, že budeme mať viac možností pre caching dát v tomto bode.
Budem blogov viac na túto tému, ako som sa dozvedieť viac.
Ak viete niečo o tomto, please post a comment 🙂
</koniec>
Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin
Som nebol testovaný to tak nie som si istý, či to funguje.
Stránka triedy má InitializeCulture() metóda, ktorá môže byť prepísané. Ak to urobíte v kóde za svoje vlastné predlohy lokality, by ste mohli urobiť niečo v duchu:
chránené prepísať neplatné InitializeCulture()
{
// prepísať Virtuálna metóda InitializeCulture() Ak chcete skontrolovať, ak profil obsahuje nastavenie jazyka používateľa
reťazec UserCulture = GetCultureFromUserProfile();
Ak ( UserCulture != "")
{
// tam je nastavenie jazyka používateľa v profile: Prepnúť na
Thread.CurrentThread.CurrentUICulture = nová CultureInfo(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Samozrejme si môžete vytvoriť nejaké caching do vykonávania tejto metódy.
Zdroj: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?Path=~/aspnet/samples/localization/LocalizePers.src&súbor = LocalizePers_cs\LocalizePers_cs.aspx&lang = C % 23 zdroj
Mám na mysli HTTP handler s nasledujúce prietoku:
1. Požiadavka prichádza palcov, Skontrolujte, či súbory cookie cookie relácie pre preferovaný jazyk (session cookie vyprší po zatvorení prehliadača)
2. Skontrolujte, či žiadosť je pre stránky ASPX, Ak nie je, Preskočiť žiadosť
3. Ak cookie neexistuje, nastaviť jazyk hlavičku zadaná hodnota. Ste urobil!
4. Žiadny súbor cookie, Vezmite overovacie poverenia a vyhľadať používateľa SPS, nájsť preferovaný jazyk
5. Nastaviť cookie hlavičky a jazyk hlavičky HTTP. Hotovo.
Prvá požiadavka na stránku APX bude mať režijné SPS Lookup ale každú žiadosť od tej doby som žiadne vyhľadávanie tak bude natívne rýchlosťou. Nie je potrebné pre relácie cache alebo ostatné režijné náklady pomocou cookie relácie príliš. Po zatvorení prehliadača, cookie relácie odchádza. Ak používateľ zmení ich jazyky preferencie SPS potrebujú len zavrieť a znovu otvoriť prehliadač pre to sa prejaví.
vlastne http handler nie je na úrovni iis…je to na úrovni aplikácie (ISAPI filtre sú na IIS úrovni)…by byť opatrný pred Kr. SP má vlastnú obsluhu…Takže nezabudnite vyskúšať…to nerobil ale mal nejaký konflikt s SP obsluhy.
By byť viac ochotní použiť HTTPHandler, jediným dôvodom je, že nemám rád dotýka súbory lokality SharePoint. Plus je to ľahké vytvoriť riešenie SharePoint nasadiť HttHandler ( a používať SPWebConfig API pre zmenu web.config). So zaťaženia používateľa nemáte, Já bych si predstaviť, máte farmu značné, naozaj nechcete ísť modifiying súbory na každom serveri.
Nasadenie global.asa súbor cez riešenie je zlý nápad, Ak ste zatiahnuť ju, pôvodný súbor je preč …
Tiež majú schopnosť rýchlo zatiahnuť riešenie by mohlo byť dobrý nápad, v prípade, že nastanú problémy s perf psovoda.