Pokud nástroj dělá věci nerozumíte a pak dojde v kroku n neznámý počet kroků, jsi mrtvá ve vodě…
</Konec>
Pokud nástroj dělá věci nerozumíte a pak dojde v kroku n neznámý počet kroků, jsi mrtvá ve vodě…
</Konec>
Jsem byl opět třiapadesáti BDC ADF soubory ručně (tak, že lze vybudovat své "Zmiz z mého trávníku!" CRED) a tato krásná chyba:
"Import definice aplikace se nezdařilo.. Došlo k následující chybě:"
Jak můžete vidět, je tu chybu, Ale … To nebude říkat mi, co to je.
V mém případě, problém se ukázalo, že jsem začal s funkční Podavač pro jiný projekt, který připojen k databázi a spuštění dotazu SQL proti zobrazení. V tomto novém projektu, Já volám metodu na webové službě. Měl jsem odečetly DB konkrétní věci a přidal moje webové služby, ale nepodařilo se aktualizovat <LobSystem.>je atribut type. Jsem přešel na "WebService" a já šťastně novější a více vzrušující importu chyb, které byly zpracovány v pravý čas.
Tady je špatně LobSystem.:
<LobSystem.
xmlns.:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Typ = "databáze"
Verze = "1.0.0.0" Jméno = "xyzzy"
xmlns ="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
To je správné:
<LobSystem.
xmlns.:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Typ = "WebService"
Verze = "1.0.0.0" Jméno = "xyzzy"
xmlns ="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
</Konec>
AKTUALIZOVAT: Toto zaúčtování MSDN má některé zajímavé pozorování z JXJ založené na jeho, převážně negativní, zkušenosti se touto cestou: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1
Máme obchodní scénář, kde musíme propojit dvě knihovny dokumentů prostřednictvím společné "ID dokumentu" pole.
Jsme se často používají vyhledávací sloupec implementuje odkazy jako je tento. Existuje několik nevýhod pro vyhledávací sloupce, z nichž jsou tři:
Podporované služby BDC, můžeme použít "obchodní údaje" Typ sloupce a to poskytuje vynikající hledání a dokonce umožňuje více sloupců dat v seznamech.
Měl jsem nějaké předběžné úspěch s tímto přístupem a v plánu psát více o tom.
Pokud jste pracovali tento úhel před a mít žádné komentáře, Prosím, podělte se!
</Konec>
Pracoval jsem s BDC dnes, kódování souborů ADF ručně a vytváří sám nějaké chyby. Jedna taková chyba:
Aplikace definice import se nezdařil. Došlo k následující chybě: Nelze načíst typ popsal v TypeDescriptor TypeName. Název parametru: typeName chyba byla zjištěna u nebo těsně před řádek: "35’ a pozice: "20".
MOSS zobrazí tuto chybu, když jsem se snažil importovat soubor ADF XML.
Jsem zkoumal internety a zjistil, že byl odkazování LOB název instance (od <Vlastnost LobSystemInstance>) v mém <TypeDescriptor> samotný název uzlu, když jsem měla mít odkazovaný LOB (od <LobSystem.>).
Špatně:
<TypeDescriptor TypeName="Conchango.KeyValue, Název Instance LOB" Jméno = "KeyValue">
Opravit:
<TypeDescriptor TypeName="Conchango.KeyValue, OBCHODNÍ jméno" Jméno = "KeyValue">
Doufám, že tohle někdo šetří, hodinu nebo dvě času.
</Konec>
Pracoval jsem na funkci minulý týden, který by přidat některé přijímače události k určitému seznamu instance. (Jsem blogged trochu o tento seznam přijímač).
Pomocí příkazového řádku, Mohl nainstalovat funkci se k žádné chybě. (Ale viz níže pro skryté chyby). Když jsem se snažil zavést funkci na webu, MOSS stěžovali na "FileNotFoundException" Chyba. Tato položka blogu popisuje, jak jsem to vyřešil.
To je chyba, že MOSS mi ukázal ve webovém prohlížeči:
Funkce ' b2cb42e3-4f0a-4380m 1ef9cd526f20’ nelze nainstalovat, protože načtení sestavení příjemce události "xyzzyFeatureReceiver_0" se nezdařilo.: System.IO.FileNotFoundException: Nelze načíst soubor nebo sestavení ' xyzzyFeatureReceiver_0’ nebo některý z jeho závislostí. Systém nemůže najít zadaný soubor.
Název souboru: ' xyzzyFeatureReceiver_0’
na System.Reflection.Assembly.nLoad(AssemblyName název_souboru, Řetězec codeBase, Důkaz assemblySecurity, Sestavení locationHint, StackCrawlMark& stackMark, Logické throwOnFileNotFound, Boolean forIntrospection)
na System.Reflection.Assembly.InternalLoad(Odkaz assemblyRef AssemblyName, Důkaz assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
na System.Reflection.Assembly.InternalLoad(AssemblyStringje řetězec, Důkaz assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
na System.Reflection.Assembly.Load(AssemblyStringje řetězec)
na Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Montáž vázání protokolování zapnuto vypnuto.
Chcete-li povolit sestavení vazby selhání protokolování, Nastavte hodnotu registru [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) do 1.
Poznámka:: Existuje nějaké penalizace spojené s shromáždění vazba selhání protokolování.
Chcete-li tuto funkci vypnout, odstranit hodnotu registru [HKLMSoftwareMicrosoftFusion!EnableLog].Poradce při potížích se službou Windows SharePoint Services.
Já vím, jak se záměrně způsobit tuto chybu: neprovádějte instalaci sestavení v GAC. Ale, bylo to v GAC. Normálně instalovat sestavení do GAC jejich přetažením do c:\windowsassembly složku v Průzkumníku windows. Nikdy jsem se necítil 100% pohodlné, dělají to, protože jsem si vždycky myslel, že gacutil existoval důvod … tak jsem to zkusil. Nic se tím nezměnilo.
Jsem prohledal Internet a našel tento post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
Plakát se stalo používat stejný kořen kousek kódu (z knihy uvnitř WSS z tohoto seznamu) tak to bylo znamením naděje. Avšak, návrh zdobení shromáždění s [montáž: ] směrnice nedávalo smysl ke mně. Já zkusil jsem to a měl jsem pravdu. Nic se tím nezměnilo.
Pak jsem si všiml, že moje definice třídy nebyla veřejné. Udělal jsem to veřejnosti a že nic neměnilo.
Další, Šel jsem na potíže povolení "shromáždění vazba selhání protokolu" (po užitečné a přesné instrukce) a to je, kde to začalo být zajímavé. Tento protokol mi ukazuje, že modul runtime hledá všude na tomto serveru pro mé shromáždění. Dokonce se zdá být hledat v mé lékárničce. Ale … to nebude hledat to v GAC.
Dal jsem na zimní bundu a jít hledat internety znovu a zjistit, že má někdo tento problém příliš. Dlouhé diskuse v tomto zveřejnění peters mimo do nicoty a nemůžu najít řešení.
Přesunout své shromáždění do jednoho z míst, které protokolu tvrdí, je hledání a trochu více pokročit. Jsem odměněn novou chybu v prohlížeči, když se pokusím o aktivaci funkce:
Nepodařilo se vytvořit objekt funkce přijímače ze sestavení "xyzzyFeatureReceiver_0", Typ "Conchango.xyzzyFeatureReceiver" pro funkci b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Hodnota nemůže být null.
Název parametru: Typ
v System.Activator.CreateInstance(Typ, Booleovský nonPublic)
v System.Activator.CreateInstance(Typ)
na Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()Poradce při potížích se službou Windows SharePoint Services.
Čas na jednu poslední výlet do internety!
Tentokrát jsem zjistit, natolik předvídatelně, MOSS vydává tuto chybu, protože sestavení není v GAC.
Chci si něco pozitivního z toho a snažte se cítit trochu hrdý, že jsem vytvořil Uprchlík sestavení jazyka MSIL, ale to nefunguje. Já jsem prostě naštvaný. Našel jsem mumlal "slepice nebo vejce" pod mým dechem.
Nakonec se rozhodli punt. Jsem vytvořit zcela nový projekt a kopírovat/vložit kód z incredible-cloaked-from-the-GAC-assembly projektu-pracující nad tento nový projekt. (Dívám se na sestavení vlajka s názvem něco jako "Skrýt od vazby, je-li nainstalován v GAC sestavení" ale nemůžu najít).
Funkci nainstalovat a aktivovat a … to funguje! Tak, po tom všem, Musel jsem v podstatě ' znovuzrození’ Můj projekt. To je další důvod, proč nenávidím počítače.
Zjistil jsem něco užitečného z toho. Už byla instalace funkcí pomocí příkazového řádku stsadm celý den a používali "-síla" možnost ze zvyku. Z nějakého důvodu, Nechtěl jsem použít možnost - force když jsem nainstaloval nový projekt. Tentokrát, Vlastně ano, skutečně zapomněl zkopírovat tento nový projekt sestavení v GAC. Jako výsledek, Dostal jsem ten FielNotFoundException"" Chyba. Tentokrát, Mám to od stsadm, Ne, když jsem se snažil aktivovat funkci přes webový prohlížeč. Tak, -síla skutečně hraje dvě role. Umožňuje znovu nainstalovat existující funkce. To také umožňuje nainstalovat buggy funkci, která nemůže fungovat v době běhu potlačením chybu. Asi tolik v nápovědě někde říká, ale nikdy jsem si nevšiml, že.
</Konec>
===
Bonusové žena vtip:
Dva mužské spolupracovníky jde na oběd. Jeden z nich říká, ostatní, "Jsem uvolnit trapné freudovské přeřeknutí v noci."
"Freudovské přeřeknutí? Co to je?"
"Dobře, Když jsme dojedli, servírka přišel a zeptal se, jak jsme rádi naše jídla. Chtěl jsem říct, "Milovala jsem kuřecí prsa’ ale místo toho jsem řekl, 'Já jsem miloval vaše prsa'. Byl jsem tak v rozpacích."
"Ah," jeho spolupracovník odpověděl. "Měl jsem to samé se mi stalo tento víkend se svou ženou. Jsme jedli snídani, kterou jsem chtěl požádat ji předat máslo, ale místo toho jsem křičel na ni, ' Jsi mi zničila život!’"
</Konec>
AKTUALIZOVAT (04/08/08): Zdá se, že jsem vyřešil tento problém. Z příkazového řádku, Běžel jsem "c:\windowssystem32lodctr /R" podle na položku mluví o InstallShield problémy a že se zdá vyřešil to pro mne.
Všiml jsem si že v poslední době, můj desktop/server ventilátor nikdy nevypíná. Já vím, že to lze vypnout. Vzal jsem si chvilku kontrolovat, to si všiml, že VMware proces byl spuštěn konzistentní 20% využití na jednom z CPU. Zkontrolovat protokol událostí a viděl tyto chyby v protokolu aplikace děje mnohokrát za minutu:
Systém Windows nemůže načíst rozšiřitelného čítače DLL UGatherer, kód chyby systému Windows je v první hodnotě DWORD v datové oblasti.
Systém Windows nemůže načíst rozšiřitelného čítače DLL UGTHRSVC, kód chyby systému Windows je v první hodnotě DWORD v datové oblasti.
Systém Windows nemůže načíst DLL MSSCNTRS rozšiřitelných čítačů, kód chyby systému Windows je v první hodnotě DWORD v datové oblasti.
Pokud jsem k podrobnostem podrobnosti o jeden z těch zpráv, Já si to:
Zdroj: Oddílu Perflib
Typ: Chyba
Kategorie: Žádný
ID události 1023
Udělal jsem nějaký výzkum a tam byl nějaký údaj, že by mohl být problém oprávnění pro přístup do knihovny DLL. Hrál si s tím ale nemohl ovlivnit věci v pozitivním způsobem, tak jsem to vzdala.
VMware se neodbytná o provedení aktualizace pro docela nějaký čas, tak jsem si zapsal na verzi nainstaloval (zřejmě "1.0.1 build 29996") a aktualizaci. To mě Upgradoval na v1.04. Bohužel, nevyřešila problém.
Můžete zastavit šílený počet zpráv bude mé žádosti protokolu, pokud jsem vypnul službu s názvem "VMware Authorization Service". To mi brání používat VMware software, Takže … není tak skvělá volba.
Hostitelský operační systém je Windows XP 64 bit.
Nemyslím si, že to se vždycky stalo, ale nepamatuju si žádné konkrétní událost, která by mohly vést k němu.
Proto nesnáším počítače.
</Konec>
AKTUALIZOVAT: To funguje, ale existují značné omezení, které jsou popsány v komentářích. Ještě to může být užitečné v některých okolností.
AKTUALIZOVAT 2: V aktuálním projektu, uživatelé vždy uložit dokumenty. Jako výsledek, Nechci běžet na problém kde MS Word je spuštěn a si myslí, že soubor byl přejmenován na něm. Já jsem běžet do problému, "byl soubor změněn jiným uživatelem" a to prostřednictvím jednoduchého semaforu typ příznaku. Uživatelé musí změnit meta datové pole výchozí hodnotu na něco jiného. Itemupdated() přijímač vyhledá platnou hodnotu před jeho skutečným provedením přejmenování a od té doby, Jsem neměl žádné problémy. Váš se může lišit.
Mám požadavek klienta ke změně názvu souborů ukládaných do určité knihovny dokumentů v souladu s konkrétní konvence pojmenování. API neposkytuje přejmenovat"()" Metoda. Místo toho, používáme "MoveTo(…)". Tady je trochu minimální kódu ke splnění tohoto úkolu:
veřejné přepsat void ItemAdded(SPItemEventProperties vlastnosti) { Soubor SPFile f = vlastnosti.ListItem.File; f.MoveTo(vlastnosti.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Jediná choulostivá je "vlastnosti. ListItem.ParentList.RootFolder.Url". MoveTo() metoda vyžaduje URL. Kaše se řetězec bodů mě kořenové složce mé aktuální knihovny dokumentů. To mi umožňuje vyhnout jakékoliv pevné kódování v mém přijímač událostí.
To je mnohem užitečnější verzi, která dělá totéž, ale přiřadí název souboru "Title":
veřejné přepsat void ItemAdded(SPItemEventProperties vlastnosti) { DisableEventFiring(); // Název této položky přiřadit název souboru. // POZNÁMKA:: Toto přiřazení musí proběhnout dříve než budeme měnit samotný soubor. // Volání aktualizace() na soubor SPFile zdá znehodnotit vlastnosti v // nějaký smysl. Aktualizace názvu"" selhala, dokud se to změnit (a aktualizovat() volání) // byly přesunuty před změnou názvu souboru. vlastnosti.ListItem["Titul"] = vlastnosti.ListItem.File.Name; vlastnosti.ListItem.Update(); Soubor SPFile f = vlastnosti.ListItem.File; // Získejte příponu souboru. Potřebujeme to později. řetězec spfileExt = nové FileInfo(f.Name).Prodloužení; // Soubor přejmenujte na ID položky seznamu a použijte příponu souboru, aby // Tahle část je neporušená. f.MoveTo(vlastnosti.ListItem.ParentList.RootFolder.Url + "/" + vlastnosti.ListItem["ID"] + spfileExt); // Potvrdit přesunutí. f.Update(); EnableEventFiring(); } |
Chlapík, "Mark", spustil se potenciálně zajímavé diskuse diskusní skupiny zaměřené na "o vynikající správa SharePoint od počátku" pro 35,000 Uživatelské prostředí.
Diskuse je zde: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6
Obyvatel na konec a přispět!
</Konec>
Já jsem stále ve zvyku tvorbě mé funkce XML soubory ručně, protože je to pro mě úplně nové. Já nechci spoléhat na front-end nástroje že dělá věci, kterým nerozumím (řekl a napsal položku blogu pomocí nástroje, který nechápe).
Dnes, Snažil jsem se přidat vlastní akci do nastavení webu, ale to prostě nepřijeli. Jsem mohl nainstalovat funkci a vidět v funkce webu, Ale když jsem aktivoval (bez chyby) to prostě ukáže na drop-down menu.
Nakonec jsem si uvědomil, že jsem chybně "SharePoint" v atributu umístění <CustomAction> uzel. To je špatné elements.xml soubor:
<?XML verze="1.0" kódování="UTF-8" ?> <Prvky xmlns.="http://schemas.Microsoft.com/SharePoint/"> <CustomAction ID="SiteActionsToolbar" ID skupiny="SiteActions" Umístění="Microsoft.Sharepoint.StandardMenu" Sekvence="100" Titul="Dobrý den!" Popis="Akce vlastní nabídky přidávány pomocí funkce." ImageUrl="_layouts/images/menuprofile.gif"> <UrlAction Adresa URL="http://www.xyzzy.com"/> </CustomAction> </Prvky> |
Dobré:
<?XML verze="1.0" kódování="UTF-8" ?> <Prvky xmlns.="http://schemas.Microsoft.com/SharePoint/"> <CustomAction ID="SiteActionsToolBar" ID skupiny="SiteActions" Umístění="Microsoft.SharePoint.StandardMenu" Sekvence="100" Titul="Dobrý den!" Popis="Akce vlastní nabídky přidávány pomocí funkce." > <UrlAction Adresa URL="http://www.xyzzy.com"/> </CustomAction> </Prvky> |
That one took me a good two hours to figure out 🙂
Beru útěchu v tom, že jednoho dne v budoucnosti, Já budu schopen říci s jistotou, "zpět v den, Šel jsem pěšky tři kilometry do kopce ve sněhu (naboso!) aby bylo možné implementovat vlastní funkce do MECHU. Děti, nevíte, jak snadné to máte! Zmiz z mého trávníku!"
Nemůžu se dočkat.
</Konec>