j'ai un service Web qui a une méthode:XmlReader saute les données de demi envoyées à webservice
[WebMethod]
public bool SyncUserData(string userxml)
Le XML est une série d'enregistrements d'utilisateur et j'utilise un XmlReader pour lire les données et les traiter. Lorsque j'appelle le service Web avec 2000 enregistrements, il traite 2000 enregistrements.
Lorsque mon client l'appelle avec le même xml, il traite 1000 enregistrements. Il traite tous les autres enregistrements.
Quelqu'un at-il une expérience avec ce genre de problème? Ma pensée est que c'est un problème de codage, mais j'ai essayé d'envoyer les données au service comme ASCII, ISO-8859-1 etc dans mes tests et ne peut pas recréer.
Toute aide très appréciée.
C'est le code d'appel:
while (userXml.Read())
{
if (userXml.Name == NODE_NAME_FILE_NAME && userXml.NodeType == XmlNodeType.Element)
{
_importFilename = userXml.ReadString();
}
if (userXml.Name == NODE_NAME_USER && userXml.NodeType == XmlNodeType.Element)
{
ProcessUser(userXml);
}
}
et c'est ce que processUser fait avec Teh lecteur xml
private void ProcessUser(XmlReader userXml)
{
_usersinfeed++;
XmlDocument user = new XmlDocument();
user.LoadXml(userXml.ReadOuterXml());
...
}
merci pour cela. c'était le bon problème avec le code. la raison pour laquelle cela fonctionnait en dev et non en production était l'existence de nœuds d'espaces dans le dev xml qui n'existaient pas en production xml. Cela signifie que la lecture supplémentaire n'a pas été lue au-delà du nœud voulu. – sentece
Quelle approche avez-vous utilisée? Avez-vous essayé la sérialisation Xml? Vraiment, vous devriez jeter un coup d'œil - c'est tellement plus facile que de coder à la main ce genre de choses. –
Je ne l'ai pas fait, juste corrigé le XmlReader - le xml allait directement à la base de données et nous n'avions pas d'objets de domaine pour l'importation à désérialiser en. aussi nous utilisions .net 2 donc pas linq J'ai utilisé la sérialisation xml dans le passé et je l'aime. merci pour votre aide – sentece