Juste en essayant de faire une légende (je pensais) simple pour lire un nombre à partir d'un fichier texte stocké sur le serveur CRM, utilisez il est l'une des valeurs du formulaire CRM, et incrémente le nombre, puis le réécrit dans le fichier texte. Lorsque je charge le formulaire, la légende ne fait ostensiblement rien et l'Observateur d'événements sur le serveur me donne ce message d'erreur de distribution invalide non utile. Je suis allé sur le code et a changé diverses choses en vain, mais je suis tout nouveau à deux appels CRM et C#, donc je suis probablement manquant quelque chose de stupide. Voici le code:CRM 3.0 légende ne fonctionne pas: événement: postcreate, exception: System.InvalidCastException: cast spécifié n'est pas valide
using System;
using System.IO;
using Microsoft.Crm.Callout;
namespace IncrementCompetitorNumber
{
public class Increment
{
public string IncrementNumber()
{
string ProjectAutoNumber = "D:\\CRM_Misc\\incrementers\\new_competitornumber.txt";
string AutoNumber = "0";
string ReturnThis = "0";
int i = 0;
lock(this)
{
TextReader tr = new StreamReader(ProjectAutoNumber);
AutoNumber = tr.ReadLine();
tr.Close();
ReturnThis = AutoNumber;
i = Convert.ToInt32(AutoNumber);
i++;
AutoNumber = i.ToString();
TextWriter tw = new StreamWriter(ProjectAutoNumber);
tw.WriteLine(AutoNumber);
tw.Close();
}
return ReturnThis;
}
}
}
Alors ... quelqu'un sait ce que je fais mal?
Malheureusement, je ne sais pas quelle ligne l'erreur se produit sur. Le seul endroit où je reçois une erreur est dans EventViewer, et c'est tout ce qu'il dit: Erreur: code ISV jeté exception: assembly: IncrementCompetitorNumber.dll; class: IncrementCompetitorNumber.Increment; entity: new_localcompetitor, événement: postcreate, exception: System.InvalidCastException: la distribution spécifiée n'est pas valide. à Microsoft.Crm.Callout.CalloutHost.PostCreate (CalloutUserContext userContext, CalloutEntityContext entityContext). En ce qui concerne l'utilisation: Je le construis dans un fichier .dll et le place dans le répertoire \ bin \ assembly – extarbags
... dans le répertoire CRM à côté de Microsoft.Crm.Platform.Callout.Base.dll. Voici la partie pertinente de mon fichier Callout.config.xml: \t \t \t \t new_competitornumber \t \t subscription> –
extarbags
Pouvez-vous publier votre code qui appelle la méthode IncrementNumber. La cause la plus probable est ce que vous faites avec la valeur de retour. –