Archives mensuelles: Janvier 2008

C'est pourquoi je ne suis pas comme à l'aide des outils jour zéro

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

Si l'outil est faire des trucs vous ne comprenez pas, et puis il ne parvient pas à l'étape n d'un nombre indéterminé d'étapes, vous êtes morts dans l'eau…

</fin>

Tags Technorati:

Solution à l'échec d'importation BDC ADF: “L'erreur suivante s'est produite:”

J'étais une fois de plus artisanat fichiers ADF BDC à la main (alors que je peux construire mon "Descendez ma pelouse!" cred) et frapper cette belle erreur:

image

« Application définition importation échoué. L'erreur suivante s'est produite:"

Comme vous pouvez le voir, Il y a une erreur, mais … il ne va pas me dire ce que c'est.

Dans mon cas, la question s'est avéré que j'avais commencé avec un ADF fonctionnelle pour un projet différent qui connecté à une base de données et exécuter une requête SQL sur une vue. Dans ce nouveau projet, J'appelle une méthode de service web. J'avais supprimé les trucs spécifiques de DB et ajouté mes trucs de service web, mais n'a pas pu mettre à jour les <LobSystem>de l'attribut type. Je suis passé il à "WebService" et heureusement, je me suis déplacé d'erreurs d'importation plus récents et plus excitant, qui ont été traitées en temps opportun.

Voici le mauvais LobSystem:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type = "base de données"
Version = "1.0.0.0" Nom = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

C'est correct:

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

</fin>

Tags Technorati:

BDC semble un remplacement Viable pour les recherches

MISE À JOUR: Cette annonce de MSDN a des observations intéressantes de JXJ basé sur son, principalement négatif, expériences aller dans cette voie: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

Nous avons un scénario d'entreprise où nous avons besoin de lier les deux bibliothèques de documents via un commun "ID de document" champ.

Nous utilisons souvent une colonne de recherche à implements liens comme ceci. Il y a plusieurs inconvénients à colonnes de recherche, trois d'entre eux sont:

  1. Une seule colonne de la bibliothèque de recherche de recherche peut être liée.
  2. Performance: La bibliothèque source peut contenir des centaines d'entrées. C'est trop d'entrées dans la recherche.
  3. Recherche: Il n'y a pas de recherche intégrée. Je ne veux pas dire dans le sens de la mousse de recherche, mais il n'y a aucun moyen de recherche / filtrer sur plusieurs colonnes de la bibliothèque de documents de source et recherchez le lien que vous voulez.

Soutenu par la BDC, Nous pouvons utiliser une "données d'entreprise" type de colonne et il fournit une recherche de qualité supérieure et permet même de plusieurs colonnes de données apparaissent dans les affichages de liste.

J'ai eu quelques succès préliminaire avec cette approche et l'intention d'écrire davantage à ce sujet.

Si vous avez travaillé cet angle avant et que vous avez des commentaires, s'il vous plaît partager!

</fin>

Tags Technorati:

Solution de BDC Import erreur: “Peut pas charger le Type décrit par la propriété TypeName de TypeDescriptor …”

J'ai travaillé avec BDC aujourd'hui, codage de fichiers ADF à la main et me générant des erreurs. Une telle erreur:

Importation de définition d'application a échoué. L'erreur suivante s'est produite: Peut pas charger le Type décrit par la propriété TypeName de TypeDescriptor. Nom du paramètre: typeName erreur a été rencontrée juste avant la ligne ou: 35’ et la Position: « 20 ».

MOUSSE affiche cette erreur lorsque j'ai essayé d'importer le fichier XML de l'ADF.

J'ai fait des recherches sur les Internets et trouvé que j'étais référençant le nom d'instance LOB (de la <LobSystemInstance>) dans mon <TypeDescriptor> nœud lorsque je devrais avoir référencé le nom LOB lui-même (De <LobSystem>).

Mauvais:

<TypeDescriptor TypeName="Conchango.KeyValue, Nom de l'Instance LOB" Nom = « KeyValue »>

Corriger:

<TypeDescriptor TypeName="Conchango.KeyValue, Nom de métier" Nom = « KeyValue »>

Espérons que celui-ci sauve quelqu'un, une heure ou deux de temps.

</fin>

S'abonner à mon blog!

Tags Technorati:

Solution au problème: “FileNotFoundException” Avec mon récepteur de fonctionnalité.

Je travaillais sur une fonctionnalité la semaine dernière qui ajouterait des récepteurs d'événements à une instance de liste spécifique. (J'ai expliqué dans un blog un peu sur ce récepteur liste ici).

À l'aide de la ligne de commande, Je pourrais installer la fonctionnalité sans erreur (mais pour l'erreur cachée, voir ci-dessous). Quand j'ai essayé de déployer la fonctionnalité sur le site, MOUSSE s'est plaint d'une FileNotFoundException »" erreur. Ce blog décrit comment je l'ai résolu.

C'est l'erreur qui mousse qui m'a été montré dans le navigateur web:

Fonctionnalité ' b2cb42e3-4f0a-4380-boulette-1ef9cd526f20’ ne pourrait pas être installé car le chargement de l'assemblage de récepteur événement « xyzzyFeatureReceiver_0" n'a pas: System.IO.FileNotFoundException: N'a pas pu charger fichier ou l'assembly ' xyzzyFeatureReceiver_0’ ou une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.
Nom de fichier: ' xyzzyFeatureReceiver_0’
à System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Preuve assemblySecurity, Assemblée locationHint, StackCrawlMark& stackMark, ThrowOnFileNotFound booléenne, ForIntrospection booléenne)
à System.Reflection.Assembly.InternalLoad(AssemblyRef AssemblyName, Preuve assemblySecurity, StackCrawlMark& stackMark, ForIntrospection booléenne)
à System.Reflection.Assembly.InternalLoad(String assemblyString, Preuve assemblySecurity, StackCrawlMark& stackMark, ForIntrospection booléenne)
à System.Reflection.Assembly.Load(String assemblyString)
à Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
AVT: Assemblage liaison journalisation est activée OFF.
Pour activer l'Assemblée lier échec enregistrement, Définissez la valeur de Registre [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) À 1.
Note: Il y a quelque peine de performance associé avec un enregistrement d'échec lier l'Assemblée.
Pour désactiver cette caractéristique, Supprimez la valeur de Registre [HKLMSoftwareMicrosoftFusion!EnableLog].

Résoudre les problèmes avec Windows SharePoint Services.

Je sais pas comment pour délibérément provoquer cette erreur: ne pas installer l'assembly dans le GAC. Mais, C'est dans le GAC. J'ai normalement installer des assemblys dans le global assembly cache en les faisant glisser dans le c:\dossier de WINDOWSassembly à l'aide de l'Explorateur windows. Je n'ai jamais senti 100% confortable de faire cela parce que j'ai toujours pensé que gacutil existait pour une raison … alors j'ai essayé qui. Il ne faisait aucune différence.

J'ai cherché les Internets et trouvé ce post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

L'affiche est arrivé d'utiliser la même racine bit du code (extrait du livre à l'intérieur de WSS dans cette liste) donc ça a été un signe d'espoir. Cependant, la suggestion de décorer l'ensemble avec une [Assemblée: ] directive n'a pas de sens pour moi. J'ai essayé quand même et j'avais raison. Il ne faisait aucune différence.

Puis j'ai remarqué que ma définition de la classe n'était pas publique. J'ai rendue publique et qui ne faisait aucune différence.

Prochaine, Je suis allé à la peine de permettre à le "Assemblée lier échec Journal" (en suivant les instructions utiles et exactes fournies) et c'est où les choses ont commencé à devenir intéressant. Ce journal me montre que le runtime recherche dans le monde sur ce serveur pour mon montage. Il semble même être recherchant dans mon armoire à pharmacie. Mais … il ne sera pas chercher dans le GAC.

J'ai mis sur ma veste hiver et aller chercher les Internets à nouveau et de trouver que quelqu'un a eu ce problème aussi. La longue discussion dans cette signalisation peters au large en rien et je ne peux pas trouver une solution.

Je propose mon Assemblée dans un des endroits que le journal prétend c'est à la recherche et j'ai progresser un peu plus. Je suis récompensé avec une nouvelle erreur dans le navigateur lorsque j'essaie d'activer la fonction:

Impossible de créer l'objet récepteur feature d'assembly « xyzzyFeatureReceiver_0 », tapez "Conchango.xyzzyFeatureReceiver" pour la fonction b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Valeur ne peut pas être null.
Nom du paramètre: type
à System.Activator.CreateInstance(Type de type, NonPublic booléenne)
à System.Activator.CreateInstance(Type de type)
à Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Résoudre les problèmes avec Windows SharePoint Services.

Temps pour un dernier voyage à l'Internets!

Cette fois j'ai trouver, assez prévisible, que MOSS publie cette erreur parce que l'assembly n'est pas dans le GAC.

Je veux obtenir quelque chose de positif de cela et essayer de se sentir un peu fière que j'ai créé le Fugitif des assemblys MSIL, mais il ne fonctionne pas. Je suis tout simplement agacé. Je me surprends murmurant « œuf ou la poule" sous mon souffle.

Je décide finalement de botté de dégagement. Je crée un projet entièrement nouveau et copier/coller le code du projet de non-travail incredible-cloaked-from-the-GAC-assembly plus à ce nouveau projet. (Je cherche un drapeau de génération appelé quelque chose comme "cacher de si installé dans le GAC de liaison d'assembly" mais n'y parvient).

J'ai installer la fonctionnalité et l'activer et … Il fonctionne! Si, Après tout ça, J'ai dû fondamentalement ' redémarrer’ mon projet. Il s'agit d'une autre raison pourquoi je déteste les ordinateurs.

J'ai appris quelque chose d'utile de ce. J'avais été l'installation en utilisant la ligne de commande stsadm tout au long de la journée et utilise le «-force" option par habitude. Pour une raison quelconque, Je n'ai pas utilisé le - option de force quand j'ai installé le nouveau projet. Cette heure, Je l'ai fait en fait, vraiment oublier de copier l'assembly du projet de cette nouvelle dans le global assembly cache. Comme un résultat, J'ai reçu cette FielNotFoundException"" erreur. Cette heure, J'ai obtenu à partir de stsadm, pas quand j'ai essayé d'activer la fonctionnalité via le navigateur web. Si, -Force joue deux rôles. Il vous permet de ré-installer une fonctionnalité existante. Il vous permet également d'installer une fonctionnalité de buggy qui ne peuvent pas travailler à l'exécution par la suppression de l'erreur. Il dit probablement autant dans l'aide quelque part, mais j'ai jamais remarqué.

</fin>

Drôle de dimanche: Retour au début 10 Moyens de contrarier votre femme

  1. Acheter brocoli quand vous savez il y a déjà plus que suffisant dans le frigo.
  2. Aller courir. Se rafraîchir. Décoller la taie d'oreiller propre et remplacer par T-shirt. Couvrir avec la taie d'oreiller propre.
  3. Lors de la conduite, demander si nous devrions aller de l'envers vers le bas d'une rue à sens unique.
  4. Pour 15 ans, tous les dimanches, cette femme vous laisse entendre aller dans un musée, étonner que les musées sont ouvertes le dimanche.
  5. Pour 15 ans, suggèrent parfois aller à la librairie locale le dimanche. Étonner qu'ils ne sont pas ouverts le dimanche (Merci beaucoup Lois bleues!).
  6. Utilisation 20 points à faire une 3 point tournant.
  7. Sur un cool début après-midi d'automne, Entrez dans la pièce et allumez l'a/c. Se plaindre qu'il fait froid. Quelle femme dit :, "pourquoi vous rallumez qui, Silly" et se lève pour l'éteindre, Prenez la place au chaud qu'elle avait sur le canapé. Des points bonus si elle ne se rend pas compte vous l'avez fait que beaucoup plus tard.
  8. Ouvrir une boîte de thon germon blanc délicieux et le manger directement à partir de la boîte, dans le lit, La nuit.
  9. Aller dans la cuisine, tandis que la femme est en train de dîner, ouvrir le tiroir à couverts et pousse les ustensiles autour jusqu'à ce que des cris de femme, "ce que vous cherchez!"
  10. Sur réception de nouvelles cartes d'affaires, secrètement les placer tout autour de la maison: Sous le lit, dans les taies d'oreiller, à l'intérieur des tasses à café, dans son sac à main, dans les poches du manteau, voiture gant compartiments, le garde-manger — partout vous pouvez penser.
  11. Écrire des entrées de blog sur ta femme.
  12. Réveil.
  13. Lors de la marche dans les rues de New York City, être sur le qui-vive pour "croûté" objets sur le terrain. Gardant à l'esprit les craintes particulières de ta femme, atteindre vers le bas comme pour un pick up up et demander, "hmm, Je me demande ce que c'est?" (Soyez prêt pour femme au corps slam vous comme si elle était un agent des services secrets protégeant le Président d'un tireur d'élite ou vous vous retrouverez couché sur le dos sur le trottoir).
  14. Disque deux fois autour d'un parc de stationnement à la recherche d'espace. Vous savez que vous avez vraiment frappé payer la saleté quand ton fils sur le siège arrière hurle, "Oh non! Il le fait encore une fois!"
  15. Écrire « top 10" listes qui n'ont pas 10 articles.

===

Blague femme bonus:

Deux collègues masculins sortent pour déjeuner. L'un d'eux dit à l'autre, « Je lâche un lapsus embarrassant l'autre soir."

"Un lapsus? Qu'est-ce que c est?"

"Bien, Quand nous avons fini de manger, la serveuse est venu et a demandé comment nous avons aimé notre repas. Je voulais dire dire, "J'ai adoré les poitrines de poulet’ mais au lieu de cela, j'ai dit « J'ai aimé vos seins ». J'étais tellement gêné."

"Ah !," son collègue a répondu. "J'ai eu la même chose m'arriver ce week-end avec ma femme. Nous mangions le petit déjeuner, que je voulais dire pour lui demander de passer le beurre, mais au lieu de cela, j'ai crié à lui, ' Vous ruiné ma vie!’"

</fin>

Tags Technorati:

ID de l'événement 1023: “Windows ne peut pas charger le compteur extensible MSSCNTRS DLL”

MISE À JOUR (04/08/08): Il me semble avoir résolu ce problème. La ligne de commande, J'ai couru « c:\windowssystem32lodctr/r" Selon une entrée parle de InstallShield problèmes et qui semble il ont résolu pour moi.

J'ai remarqué que dernièrement, mon ventilateur de bureau/serveur jamais s'éteint. Je sais qu'il utilisé pour éteindre. J'ai pris un moment pour vérifier dehors remarqué que l'un processus VMware s'exécutait un uniforme 20% utilisation sur l'un de la CPU. J'ai vérifié le journal des événements et a vu ces erreurs dans le journal des applications qui passe des dizaines de fois par minute:

Windows ne peut pas charger le compteur extensible DLL UGatherer, le premier DWORD dans la section données est le code d'erreur Windows.

Windows ne peut pas charger le compteur extensible DLL UGTHRSVC, le premier DWORD dans la section données est le code d'erreur Windows.

Windows ne peut pas charger le compteur extensible MSSCNTRS DLL, le premier DWORD dans la section données est le code d'erreur Windows.

Si je percer les détails d'un de ces messages, J'obtiens ceci:

Source: Perflib

Type: Erreur

Catégorie: Aucun

ID de l'événement 1023

J'ai fait quelques recherches et il y avait une idée, ça pourrait être un problème d'autorisation en matière d'accès aux dll en question. J'ai joué un peu avec ce genre de choses, mais ne pouvait affecter les choses de manière positive, alors j'ai laissé tomber là-dessus.

VMware avait été me harceler à effectuer une mise à jour depuis un certain temps, donc je note la version que j'avais installé (apparemment « 1.0.1 construire 29996 ») et fait la mise à jour. Cela m'a surclassé à v1.04. Malheureusement, Il n'a pas fixé la question.

Je ne peux arrêter le nombre fou de messages adressés à mon journal de l'application si j'arrête un service appelé « Service d'autorisation de VMware ». Cela m'empêche d'utiliser le logiciel VMware, donc … pas cette option grande.

Le système d'exploitation est Windows XP 64 bit.

Je ne pense pas que c'est toujours arrivé, mais je ne me rappelle aucun événement particulier qui aurait pu conduire à elle.

C'est pourquoi je déteste les ordinateurs.

</fin>

Tags Technorati:

Rapide & Facile: Renommez le fichier téléchargé à l'aide du modèle objet de SharePoint Via un récepteur d'événements

MISE À JOUR: Cela fonctionne mais il y a des limites importantes qui sont décrites dans les commentaires. Cela peut toujours être utile dans certaines circonstances.

MISE À JOUR 2: Dans mon projet actuel, les utilisateurs toujours téléchargement les documents. Comme un résultat, Je ne cours pas dans un problème où MS Word est en cours d'exécution et pense que le fichier a été renommé à ce sujet. J'ai couru dans un problème, « le fichier a été modifié par quelqu'un d'autre" et résolu ce problème par un indicateur de type simple sémaphore. Besoin de l'utilisateur de modifier un champ de données méta de sa valeur par défaut à autre chose. L'itemupdated() récepteur examine une valeur valide il avant d'effectuer réellement la renommer et depuis, Je n'ai eu aucun problème. Votre kilométrage peut varier.

J'ai une exigence client de changer le nom des fichiers téléchargés vers une bibliothèque de documents spécifique conforme à une convention de nommage particulière. L'API ne prévoit pas un changement de nom"()" méthode. Au lieu de cela, Nous utilisons "MoveTo(…)". Ici est un peu un minimum de code pour y parvenir:

 public Substituez VOID ItemAdded(SPItemEventProperties propriétés)
        {
            SPFile f = propriétés.ListItem.File;

            f.MoveTo(propriétés.ListItem.ParentList.RootFolder.Url + « /xyzzy.doc");
            f.Update();

        }

Le bit seulement délicat est les "Propriétés. ListItem.ParentList.RootFolder.Url". Le MoveTo() méthode requiert une URL. Que purée points chaîne me dans le dossier racine de ma bibliothèque de document actuel. Cela me permet d'éviter n'importe quel codage dur dans mon récepteur d'événements.

Il s'agit d'une version plus utile qui fait la même chose, mais affecte le nom du fichier à « Titre »:

 public Substituez VOID ItemAdded(SPItemEventProperties propriétés)
        {
            DisableEventFiring();

            // Attribuer le titre de ce point le nom du fichier lui-même.
 // NOTE: Cette cession doit avoir lieu avant que nous modifions le fichier lui-même.
 // Mise à jour de l'appel() sur le SPFile semble invalider les propriétés dans
 // certains sens.  Mises à jour au titre de »" échoué jusqu'à ce que cela change (mise à jour et() appel)
 // ont été déplacés de la modification du nom de fichier.
            propriétés.ListItem[« Titre"] = propriétés.ListItem.File.Name;

            propriétés.ListItem.Update();

            SPFile f = propriétés.ListItem.File;

            // Obtenir l'extension du fichier.  Nous avons besoin que plus tard.
 chaîne spfileExt = Nouveau FileInfo(d.nom).Extension;

            // Renommez le fichier d'ID de l'élément de liste et utilisent l'extension de fichier pour garder
 // Cette partie intacte.
            f.MoveTo(propriétés.ListItem.ParentList.RootFolder.Url +
                "/" + propriétés.ListItem[« CARTE D'IDENTITÉ"] + spfileExt);

            // Commettre le déménagement.
            f.Update();

            EnableEventFiring();
        }

Forum Discussion: Meilleures pratiques respecter dans l'environnement de mousse Non négligeable

Fellow, « Mark », a commencé une discussion de groupe de discussion potentiellement intéressants mettant l'accent sur le "établissement d'excellente gouvernance SharePoint depuis le début" pour un 35,000 environnement de l'utilisateur.

La discussion est ici: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Sur plus de pop et de contribuer!

</fin>

URL de l'Action personnalisée ne s'affiche pas de nouvelle fonctionnalité

J'ai toujours l'habitude de mes fichiers XML de fonctionnalité d'artisanat à la main car il est tout à fait nouveau pour moi. Je ne veux pas compter sur un outil frontal ça fait que je ne comprends pas (Il a dit qu'il a écrit une entrée de blog à l'aide d'un outil, qu'il ne comprend pas).

Aujourd'hui, J'ai essayé d'ajouter une action personnalisée pour les paramètres de site, mais il ne serait pas juste apparaître. Je pourrais installer la fonctionnalité et le voir dans les fonctionnalités du site, mais quand j'ai activé il (sans erreur) il ne serait pas simplement apparaître dans le menu déroulant.

Enfin, j'ai réalisé que j'ai mal orthographié « SharePoint" dans l'attribut d'emplacement de la <CustomAction> nœud. C'est le fichier elements.xml mauvais:

<?XML Version="1.0" codage="UTF-8" ?>
<Éléments xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolbar"
 GroupId="SiteActions"
 Emplacement="Microsoft.Sharepoint.StandardMenu"
 Séquence="100"
 Titre="Salut!"
 Description="Action de menu personnalisé ajoutée via une fonctionnalité."
 ImageUrl="_layouts/images/menuprofile.gif">

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

  </CustomAction>
</Éléments>

Bon:

<?XML Version="1.0" codage="UTF-8" ?>
<Éléments xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolBar"
 GroupId="SiteActions"
 Emplacement="Microsoft.SharePoint.StandardMenu"
 Séquence="100"
 Titre="Salut!"
 Description="Action de menu personnalisé ajoutée via une fonctionnalité."
    >
    <UrlAction URL="http://www.xyzzy.com"/>
  </CustomAction>
</Éléments>

That one took me a good two hours to figure out 🙂

Je prends réconfort dans le fait qu'un jour à l'avenir, Je serai en mesure de dire avec conviction, "retour dans la journée, J'ai dû marcher trois milles vers le haut de la colline dans la neige (pieds nus!) afin de déployer une fonctionnalité personnalisée à MOSS. Vous les enfants, vous ne savez pas combien il est facile vous l'avez! Descendre de ma pelouse!"

Ne peut pas attendre.

</fin>

Tags Technorati: ,