archivi mensili: Gennaio 2008

Ecco perché I Don't come utilizzando strumenti giorno Zero

http://groups.google.com/group/microsoft.public.sharepoint.portalserver.development/browse_thread/thread/41e8cbe4f15e8b4c/76506ea401403e35?#76506ea401403e35

Se lo strumento sta facendo cose che non capisci e quindi non riesce a passo n di un numero sconosciuto di passaggi, You're dead in the water…

</fine>

Technorati Tags:

Soluzione al fallimento di importazione BDC ADF: “Si è verificato il seguente errore:”

Ancora una volta stavo crafting file ADF BDC a mano (così che io posso costruire il mio "scendere il mio prato!" cred) e ha colpito questo errore bello:

immagine

"Importazione di definizione di applicazione non riuscita. Si è verificato il seguente errore:"

Come si può vedere, c'è un errore, ma … non è intenzione di dirmi che cosa è.

Nel mio caso, il problema si è rivelato che avevo cominciato con un ADF funzionali per un progetto diverso che connesso a un database ed eseguito una query SQL su una vista. In questo nuovo progetto, Sto chiamando un metodo su un servizio web. Avevo messo a nudo le cose specifiche di DB e aggiunto la mia roba di servizio web, ma non è riuscito ad aggiornare il <LobSystem>di attributo type. Passato a "WebService" e sono felicemente passato ad errori di importazione più recente e più emozionante, che sono stati gestiti a tempo debito.

Ecco il LobSystem sbagliato:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipo = "Database"
Versione = "1.0.0.0" Nome = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Questo è corretto:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipo = "WebService"
Versione = "1.0.0.0" Nome = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

</fine>

Technorati Tags:

BDC sembra un sostituto valido per le ricerche

AGGIORNAMENTO: Questo distacco di MSDN ha alcune interessanti osservazioni da JXJ basato sul suo, negative, esperienze andando su questa strada: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

Abbiamo uno scenario di business dove dobbiamo collegare due librerie di documenti tramite una comune "documento ID" Campo.

Spesso usiamo una colonna di ricerca ai collegamenti implements like this.. Ci sono diversi inconvenienti a colonne di ricerca, tre dei quali sono:

  1. Solo una colonna dalla biblioteca di ricerca di ricerca possa essere collegata.
  2. Prestazioni: La libreria di origine potrebbe contenere centinaia di voci. È troppe voci in lookup.
  3. Ricerca: Non c'è nessuna ricerca integrata. Non intendo in senso MOSS di ricerca, ma non non c'è nessun modo per cercare / filtrare in base a più colonne dalla raccolta di documenti di origine e individuare il collegamento che si desidera.

Sostenuta da BDC, possiamo usare un dati di business"" tipo di colonna e si fornisce una ricerca superiore e permette anche più colonne di dati vengono visualizzati nelle visualizzazioni elenco.

Ho avuto qualche successo preliminare con questo approccio e prevede di scrivere di più su di esso.

Se hai lavorato questo angolo prima e avere eventuali commenti, si prega di condividere!

</fine>

Technorati Tags:

Soluzione all'errore di importazione BDC: “Impossibile caricare il tipo descritto dal TypeName del TypeDescriptor …”

Ho lavorato con BDC oggi, codifica i file ADF a mano e alcuni errori di generazione me stesso. Un tale errore:

Importazione di definizione di applicazione non riuscita. Si è verificato il seguente errore: Impossibile caricare il tipo descritto dal TypeName del TypeDescriptor. Nome del parametro: typeName errore è stata rilevata appena prima linea: 35’ e posizione: '20'.

MOSS visualizzato questo errore quando ho provato a importare il file XML ADF.

Ricercato Internets e trovato che io stavo riferimento al nome di istanza LOB (dal <LobSystemInstance>) nel mio <TypeDescriptor> nodo quando dovrei avere fatto riferimento il nome LOB stesso (Da <LobSystem>).

Sbagliato:

<TypeDescriptor TypeName="Conchango.KeyValue, Nome istanza di pallonetto" Nome = "KeyValue">

Correggere:

<TypeDescriptor TypeName="Conchango.KeyValue, Nome LOB" Nome = "KeyValue">

Spero che questo qualcuno salva un'ora o due di tempo.

</fine>

Iscriviti al mio blog!

Technorati Tags:

Soluzione al problema: “FileNotFoundException” Con il mio ricevitore di funzionalità.

Stavo lavorando su una caratteristica la scorsa settimana che vorrei aggiungere alcuni ricevitori di eventi a un'istanza di elenco specifico. (Ho bloggato un po' su quel ricevitore elenco qui).

Utilizzando la riga di comando, Potuto installare la funzionalità con nessun errore (ma vedi sotto per l'errore nascosto). Quando ho provato a distribuire la funzionalità sul sito, MOSS si è lamentato di "FileNotFoundException" errore. Questo blog descrive come ho risolto.

Questo è l'errore che MOSS mi ha mostrato nel browser web:

Funzione ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ potrebbe non essere installato perché il caricamento di assembly del ricevitore di eventi "xyzzyFeatureReceiver_0" non riuscita: System.io.FileNotFoundException: Impossibile caricare il file o l'assembly ' xyzzyFeatureReceiver_0’ o una delle relative dipendenze. Il sistema non riesce a trovare il file specificato.
Nome del file: ' xyzzyFeatureReceiver_0’
presso System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Prove assemblySecurity, Assemblea locationHint, StackCrawlMark& stackMark, ThrowOnFileNotFound booleano, ForIntrospection Boolean)
presso System.Reflection.Assembly.InternalLoad(AssemblyRef AssemblyName, Prove assemblySecurity, StackCrawlMark& stackMark, ForIntrospection Boolean)
presso System.Reflection.Assembly.InternalLoad(AssemblyString stringa, Prove assemblySecurity, StackCrawlMark& stackMark, ForIntrospection Boolean)
a Reflection(AssemblyString stringa)
presso Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Assemblea associazione registrazione è attivata OFF.
Abilitare la registrazione di assembly legano fallimento, impostare il valore del registro di sistema [HKLMSoftwareMicrosoftFusion.!EnableLog] (DWORD) A 1.
Nota: C'è qualche penalizzazione delle prestazioni associati alla registrazione di guasto legano assieme.
Per disattivare questa funzionalità, rimuovere il valore del registro di sistema [HKLMSoftwareMicrosoftFusion.!EnableLog].

Risolvere i problemi con Windows SharePoint Services.

Saper provocare deliberatamente quell'errore: non installare l'assembly nella global assembly cache. Ma, era nella GAC. Normalmente installare assembly nella GAC trascinandoli nella c:\WINDOWSassembly cartella utilizzando Esplora risorse di windows. Non ho mai sentito 100% comodo che fare perché ho sempre pensato che gacutil esistito per un motivo … così ho provato che. Non faceva alcuna differenza.

Ho cercato il Internets e trovato questo post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Il poster è capitato di usare lo stesso pezzo di radice di codice (dal libro all'interno di WSS da questo elenco) così che era un segno di speranza. Tuttavia, il suggerimento di decorare l'assembly con un [Assemblea: ] direttiva non ha senso per me. Ho provato comunque e non mi sbagliavo. Non faceva alcuna differenza.

Poi ho notato che la mia definizione di classe non era pubblico. Reso pubblico e che non faceva alcuna differenza.

Successivo, Sono andato alla difficoltà di abilitazione "Assemblea associazione fallimento log" (seguendo le istruzioni utili e precise fornite) e questo è dove le cose hanno cominciato a farsi interessanti. Tale log mi mostra che il runtime sta cercando ovunque su tale server per la mia Assemblea. Sembra anche essere alla ricerca di essa nel mio armadietto dei medicinali. Ma … esso non cercarlo nella GAC.

Ho messo sulla mia giacca invernale e andare alla ricerca di Internets nuovamente e scoprire che qualcuno ha avuto questo problema troppo. La lunga discussione in tale registrazione peters fuori nel nulla e non riesco a trovare una soluzione.

Mi muovo la mia Assemblea in uno dei posti che nel registro reclami sta cercando e fare un po' più progressi. Io sono ricompensato con un nuovo errore nel browser quando tento di attivare la funzionalità:

Impossibile creare l'oggetto ricevitore caratteristica dal gruppo "xyzzyFeatureReceiver_0", tipo "Conchango.xyzzyFeatureReceiver" per la funzione b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: ArgumentNullException: Valore non può essere null.
Nome del parametro: tipo
corrispondenza System.Activator.CreateInstance(Tipo tipo, NonPublic booleano)
corrispondenza System.Activator.CreateInstance(Tipo tipo)
presso Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Risolvere i problemi con Windows SharePoint Services.

Tempo per un ultimo viaggio a Internets!

Questa volta scopro, abbastanza prevedibile, quel muschio genera questo errore perché l'assembly non è nella global assembly cache.

Voglio ottenere qualcosa di positivo da questo e provare a sentire un po' orgogliosa che ho creato il Fuggitivo di assembly MSIL, ma non funziona. Io sono semplicemente infastidito. Mi trovo a borbottando "uovo o la gallina" sotto il mio respiro.

Ho finalmente deciso a punt. Creare un progetto completamente nuovo e copia/incolla il codice dal progetto non funzionante incredible-cloaked-from-the-GAC-assembly sopra a questo nuovo progetto. (Cercare un flag di compilazione chiamato qualcosa come "Nascondi da associazione se installato nella Global Assembly Cache assembly" ma non riesce a trovare uno).

Installare la funzionalità e attivarlo e … funziona! Così, Dopo tutto ciò che, Ho dovuto fondamentalmente ' riavviare’ il mio progetto. Questo è un altro motivo perche ' odio il computer.

Ho imparato qualcosa di utile da questo. Ero stato l'installazione di funzionalità utilizzando la riga di comando stsadm tutto il giorno e state usando il "-forza" opzione per abitudine. Per qualche motivo, Non ho usato il - opzione force quando ho installato il nuovo progetto. Stavolta, In realtà ho fatto, veramente dimenticare copiare assembly di questo nuovo progetto nella GAC. Di conseguenza, Ho ricevuto quel FielNotFoundException"" errore. Stavolta, Ho preso da stsadm, non quando ho cercato di attivare la funzione tramite il browser web. Così, -forza in realtà svolge due ruoli. Esso consente di re-installare una funzionalità esistente. Inoltre consente di installare una funzionalità buggy che non può funzionare in fase di esecuzione di eliminazione dell'errore. Probabilmente dice tanto nella guida da qualche parte ma non ho mai notato.

</fine>

Funny domenica: In alto 10 Modi per infastidire tua moglie

  1. Acquistare broccoli quando sai che c'è già più che sufficiente in frigo.
  2. Andare a correre. Rinfrescarsi. Togliere la federa pulita e sostituire con t-shirt. Coprire con federa pulita.
  3. Quando si guida, chiedere se dovremmo andare nel modo sbagliato giù una strada a senso unico.
  4. Per 15 anni, ogni domenica che moglie suggerisce di andare in un museo, esprimere sorpresa che i musei sono aperti di domenica.
  5. Per 15 anni, occasionalmente consigliamo di andare al negozio locale libro domenica. Esprimere la sorpresa che non sono aperti di domenica (Grazie mille Leggi Blue!).
  6. Uso 20 punti per fare un 3 scegliere Disabilita.
  7. In un freddo pomeriggio caduta precoce, entrare nella stanza e accendere l'aria condizionata. Si lamentano che è freddo. Quando la moglie dice, "allora perché si accende che, sciocco" e si alza per spegnerlo, afferrare il posto caldo che ha avuta sul divano. Punti bonus se lei non si rende conto ha fatto solo molto più tardi.
  8. Aprire una lattina di tonno bianco bianco delizioso e mangiarlo direttamente dalla lattina, nel letto, Di notte.
  9. Andare in cucina, mentre la moglie è mangiare la cena, Aprire il cassetto posate e spingere gli utensili intorno fino alla moglie urla, "che cosa stai cercando!"
  10. Al ricevimento di nuovi biglietti da visita, segretamente li posto intorno alla casa: Sotto il letto, in federe, all'interno di tazze di caffè, nella borsetta, nelle tasche del cappotto, vani portaoggetti auto, la dispensa — ovunque si può pensare di.
  11. Scrivere voci di blog di tua moglie.
  12. Svegliati.
  13. Quando camminare per le strade di New York City, essere in allerta per "croccante" oggetti a terra. Tenendo a mente le paure speciale di tua moglie, raggiungere per scegliere uno fino fino e chiedere, "hmm, Mi chiedo che cosa è?" (Essere preparati per moglie al corpo slam è come se lei è un agente dei servizi segreti proteggendo il Presidente da un cecchino o vi ritroverete posa sulla schiena sul marciapiede).
  14. Girare due volte per un parcheggio alla ricerca di spazio. Sai che hai davvero colpito pagare sporco quando urla di tuo figlio sul sedile posteriore, "Oh no! Lo sta facendo ancora una volta!"
  15. Scrivere "top 10" liste che non hanno 10 elementi.

===

Scherzo moglie bonus:

Due colleghi di lavoro maschi andare a pranzo. Uno di loro dice l'altro, "Lasciato liberamente un imbarazzante lapsus freudiano l'altra sera."

"Un lapsus freudiano? Cos'è?"

"Bene, Quando abbiamo finito di mangiare, la cameriera si avvicinò e chiese come abbiamo apprezzato i pasti. Intendevo dire, ' Mi è piaciuto molto il petto di pollo’ ma invece ho detto 'Mi è piaciuto molto il tuo seno'. Ero così imbarazzato."

"Ah," suo collaboratore ha risposto. "Ho avuto la stessa cosa accada a me questo fine settimana con mia moglie. Abbiamo mangiato colazione che volevo chiederle di passare il burro, ma invece ho urlato a lei, ' Hai rovinato la mia vita!’"

</fine>

Technorati Tags:

ID evento 1023: “Impossibile caricare DLL MSSCNTRS contatore flessibile”

AGGIORNAMENTO (04/08/08): Mi sembra di aver risolto questo problema. Dalla riga di comando, Mi sono imbattuto "c:\windowssystem32lodctr/r" secondo una voce parlando di InstallShield problemi e che sembra avere risolto per me.

Ho notato che ultimamente, il mio ventilatore di server e desktop mai si spegne. So che ha usato per spegnere. Ho preso un momento per controllare fuori notato che l'un processo di VMware è stato in esecuzione un coerente 20% utilizzo su uno della CPU. Ho controllato il registro eventi e visto questi errori nel registro dell'applicazione accadendo decine di volte al minuto:

Windows non può caricare il contatore flessibile DLL UGatherer, il primo DWORD nella sezione dati è il codice di errore di Windows.

Windows non può caricare il contatore flessibile DLL UGTHRSVC, il primo DWORD nella sezione dati è il codice di errore di Windows.

Impossibile caricare DLL MSSCNTRS contatore flessibile, il primo DWORD nella sezione dati è il codice di errore di Windows.

Se io forare i dettagli di uno di quei messaggi, Ottengo questo:

Fonte: Perflib

Tipo: Errore

Categoria: Nessuno

ID evento 1023

Ho fatto qualche ricerca e c'era qualche indicazione che potrebbe essere un problema di autorizzazione in materia di accesso alle DLL in questione. Ho suonato in giro con quella roba, ma non avrebbe potuto modificare le cose in modo positivo, così rinunciato a questo.

VMware ha avuto stato fastidioso per me sull'esecuzione di un aggiornamento per parecchio tempo, così buttato giù la versione che avevo installato (a quanto pare "1.0.1 costruire 29996") e fatto l'aggiornamento. Questo mi ha aggiornato alla versione v 1.04. Purtroppo, essa non ha risolto il problema.

Posso fermare il pazzo numero di messaggi andando al mio registro applicazione se chiudo un servizio denominato "Servizio di autorizzazione di VMware". Questo mi impedisce di utilizzando il software VMware, così … non una grande opzione.

Il sistema operativo host è Windows XP 64 bit.

Non credo che questo è sempre successo, ma non ricordo alcun evento particolare che potrebbe avere portato ad esso.

Ecco perché odio il computer.

</fine>

Technorati Tags:

Rapido & Facile: Rinominare il File caricato utilizzando il modello a oggetti di SharePoint tramite un ricevente di eventi

AGGIORNAMENTO: Questo funziona, ma non ci sono limitazioni significative che sono descritti nei commenti. Questo può ancora essere utile in alcuni cirumstances.

AGGIORNAMENTO 2: Nel mio progetto attuale, Gli utenti sempre caricare documenti. Di conseguenza, Io non incorrere in un problema dove MS Word è in esecuzione e pensa che il file è stato rinominato su di esso. Ho incontrato un problema, "il file è stato modificato da qualcun altro" e risolto il problema tramite un flag di tipo semplice semaforo. Gli utenti devono modificare un campo dati meta dal valore predefinito a qualcos'altro. Il itemupdated() ricevitore in cerca di un valore valido lì prima di eseguire effettivamente la rinomina e da allora, Non ho avuto alcun problema. Il chilometraggio può variare.

Ho un requisito di cliente di cambiare il nome del file caricato in una raccolta di documenti specifici per la conformità con una convenzione di denominazione particolare. L'API fornisce una "Rinomina()" Metodo.. Invece, usiamo "MoveTo(…)". Qui è un po' minimal di codice per eseguire questa operazione:

 pubblica eseguire l'override void ItemAdded(SPItemEventProperties Proprietà)
        {
            SPFile f = proprietα.ListItem.File;

            f.MoveTo(Proprietà.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Solo la parte difficile è la "proprietà. ListItem.ParentList.RootFolder.Url". Il MoveTo() Metodo richiede un URL. Che purè punti stringa me nella cartella principale della mia libreria del documento corrente. Questo mi permette di evitare qualsiasi hard coded in mio ricevitore di eventi.

Questa è una versione più utile che fa la stessa cosa, ma assegna il nome del file per il "Titolo":

 pubblica eseguire l'override void ItemAdded(SPItemEventProperties Proprietà)
        {
            DisableEventFiring();

            // Assegnare il titolo di quest'elemento sul nome del file stesso.
 // NOTA: Questa assegnazione deve avvenire prima che vogliamo modificare il file stesso.
 // La chiamata di aggiornamento() la SPFile sembra invalidare le proprietà in
 // certo senso.  Aggiornamenti "Title" non è riuscito fino a che cambia (e l'aggiornamento() chiamare)
 // sono state spostate di fronte la modifica il nome del file.
            Proprietà.ListItem["Title"] = proprietα.ListItem.File.Name;

            Proprietà.ListItem.Update();

            SPFile f = proprietα.ListItem.File;

            // Ottenere l'estensione del file.  Abbiamo bisogno che più tardi.
 stringa spfileExt = Nuovo FileInfo(f. Name).Estensione;

            // Rinominare il file ID dell'elemento di elenco e utilizzare l'estensione del file per mantenere
 // quella parte di esso intatto.
            f.MoveTo(Proprietà.ListItem.ParentList.RootFolder.Url +
                "/" + Proprietà.ListItem["ID"] + spfileExt);

            // La mossa di commettere.
            f.Update();

            EnableEventFiring();
        }

Forum di discussione: Far rispettare migliori pratiche Compliance in ambiente Non banale di MOSS

Un collega, "Mark", ha avviato una discussione newsgroup potenzialmente interessante incentrato sulla "Governance di SharePoint eccellente dall'inizio di stabilire" per un 35,000 ambiente utente.

La discussione è qui: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Al pop sopra e contribuire!

</fine>

Azione personalizzata URL non visualizza funzionalità nuove

Ho ancora l'abitudine di crafting i miei file funzionalità XML a mano, dal momento che è tutto abbastanza nuovo per me. Non voglio fare affidamento su uno strumento front-end quella roba fa che non capisco (ha detto come ha scritto un post di blog utilizzando uno strumento che non capisce).

Oggi, Stavo tentando di aggiungere un'azione personalizzata per le impostazioni del sito, ma basta non presentarsi. Ho potuto installare la funzionalità e vederlo nelle caratteristiche del sito, ma quando l'ho attivato (senza errore) esso semplicemente non compare nel menu a discesa.

Ho finalmente capito che scritto male "SharePoint" nell'attributo di posizione il <CustomAction> nodo. Questo è il file bad Elements.:

<?XML Versione="1.0" codifica="UTF-8" ?>
<Elementi xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolbar"
 GroupId="SiteActions"
 Posizione="Microsoft.Sharepoint.StandardMenu"
 Sequenza="100"
 Titolo="Ciao!"
 Descrizione="Azione menu personalizzati aggiunti tramite una caratteristica."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction URL="http://www.xyzzy.com"/>

  </CustomAction>
</Elementi>

Buona:

<?XML Versione="1.0" codifica="UTF-8" ?>
<Elementi xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolBar"
 GroupId="SiteActions"
 Posizione="Microsoft.SharePoint.StandardMenu"
 Sequenza="100"
 Titolo="Ciao!"
 Descrizione="Azione menu personalizzati aggiunti tramite una caratteristica."
    >
    <UrlAction URL="http://www.xyzzy.com"/>
  </CustomAction>
</Elementi>

Mi ci sono volute due ore buone per capirlo 🙂

Prendo conforto nel fatto che qualche giorno in futuro, Sarò in grado di dire con convinzione, "back in the day, Ho dovuto camminare tre miglia salita nella neve (a piedi nudi!) al fine di distribuire una funzionalità personalizzata in MOSS. Voi ragazzi, non sai quanto sia facile lo avete! Scendere il mio prato!"

Non vedo l'ora.

</fine>

Technorati Tags: ,