2013-05-23 1 views
2

J'essaie de suivre ce tutoriel On MSDN afin d'en savoir plus sur les services de workflow et leur fonctionnement. Maintenant, je suis peut-être fou, mais j'ai des problèmes avec la section client du tutoriel (je suis tenté de blâmer le tutoriel et pas moi-même pour ce problème). J'obtiens des erreurs de réfrence sur l'initialisation StartOrderClient et le AddItemClient. Est-ce juste un cas d'une étape légèrement incomplète dans le tutoriel ou est-ce que je manque quelque chose?Création d'un service de workflow de longue durée

Je vous remercie beaucoup d'avance.

Ci-dessous mon programme de commande client Console

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.ServiceModel; 
using System.ServiceModel.Activities; 

namespace OrderClient.OrderService 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      // Send initial message to start the workflow service 
      Console.WriteLine("Sending start message"); 
      StartOrderClient startProxy = new StartOrderClient(); 
      string orderId = startProxy.StartOrder("Kim Abercrombie"); 

      // The workflow service is now waiting for the second message to be sent 
      Console.WriteLine("Workflow service is idle..."); 
      Console.WriteLine("Press [ENTER] to send an add item message to reactivate the workflow service..."); 
      Console.ReadLine(); 

      // Send the second message 
      Console.WriteLine("Sending add item message"); 
      AddItemClient addProxy = new AddItemClient(); 
      AddItem item = new AddItem(); 
      item.p_itemId = "Zune HD"; 
      item.p_orderId = orderId; 

      string orderResult = addProxy.AddItem(item); 
      Console.WriteLine("Service returned: " + orderResult); 
     } 
    } 
} 

Voici les erreurs. StartOrderClient et AddItemClient dont je ne crois pas qu'ils soient définis dans le tutoriel.

n'a pu être trouvée (vous manque une directive à l'aide ou une référence d'assemblage?)

n'a pas pu être trouvé le type ou le nom d'espace de noms « de AddItemClient » Le nom du type ou espace de noms « StartOrderClient » (vous manque un à l'aide de la directive ou d'une référence d'assembly?)

+1

Quel genre d'erreurs de référence? C'est, spécifiquement, quelles sont vos erreurs? – Thelonias

+0

Type ou nom d'espace de noms introuvable. Je vais jeter le code du client dans la question principale qui pourrait aider. –

+1

Où/quand l'erreur s'est-elle produite? – Thelonias

Répondre

0

Pour résoudre l'erreur, ouvrez le fichier Service1.xamlx. Cliquez sur ReceiveStartOrder et remplacez la propriété ServiceContractName par {http://tempuri.org/}IStartOrder (elle est généralement {http://tempuri.org/}IService} par défaut). Faites la même chose pour l'activité ReceiveAddItem (IAddItem).

Reconstruisez la solution. Dans le projet de console, cliquez avec le bouton droit sur la référence de service OrderService et mettez-le à jour.

Remarque: le didacticiel est rempli d'erreurs et j'y travaille toujours. Une fois que j'ai réussi à le remplir et à documenter les étapes manquantes et les inexactitudes, je vais mettre à jour cette réponse et peut inclure un lien de blog avec un tutoriel révisé.

Pour quiconque essaie de faire ce tutoriel, une meilleure option est de suivre this updated tutorial.

0

J'utilise ce code pour la méthode principale

static void Main(string[] args) 
    { 
     // Send initial message to start the workflow service 
     Console.WriteLine("Sending start message"); 

     ServiceClient proxy = new ServiceClient(); 
     string orderId = proxy.StartOrder("Kim Abercrombie"); 

     // The workflow service is now waiting for the second message to be sent 
     Console.WriteLine("Workflow service is idle..."); 
     Console.WriteLine("Press [ENTER] to send an add item message to reactivate the workflow service..."); 
     Console.ReadLine(); 

     // Send the second message 
     Console.WriteLine("Sending add item message"); 
     AddItem item = new AddItem(); 
     item.p_itemId = "Zune H"; 
     item.p_orderId = orderId; 

     string orderResult = proxy.AddItem(item); 
     Console.WriteLine("Service returned: " + orderResult); 
    } 
Questions connexes