begin process at 2008 09 06 18:44:33
1 237 887 membres
272 nouveaux aujourd'hui
14 314 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Passage d'argument WebService - Synchronization Framework [ Réseau & Internet / Client - Serveur ] (braxivamov)

Passage d'argument WebService - Synchronization Framework le 30/05/2008 22:35:59

braxivamov
Bonjour,
Je developpe en ce moment une application de synchronisation de données en utilisant le Microsoft Synchronization Framework. Cette application permet de synchroniser des données entre un pocket pc et un sql server distant. Pour contacter la base sql server je passe par un webservice, cette architecture se nomme n-tier (cf : http://www.syncguru.com/projects/ - demo III).
L'appli marche tres bien pour 1 client mais je souhaiterais qu'elle soit multiclient, c'est à dire au travers du même webservice me connecter à différentes BDD. Pour cela il faudrait que je passe en argument de ma fonction distante le nom de la BDD voulue.

Voici le code du webservice :
<code>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
        private DbServerSyncProvider _serverProvider;
        private nomBDD = null;

    public Service ()
    {
        _serverProvider = new DbServerSyncProvider();
       SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();

        // 1. Preparation de la connection bdd server et attachement au syncagent
       
        builder["Data Source"] = "adress";
        builder["Initial Catalog"] = nomBDD;
        builder["User ID"] = "user";
        builder["Password"] = "pass";
        SqlConnection serverConnection = new SqlConnection(builder.ConnectionString);
       
        _serverProvider.Connection = serverConnection;

       .............(code de synchro)...............

}
</code>
Voici le code côté client :
<code>
 private void buttonSynchronize_Click(object sender, EventArgs e)
        {

            try
            {

                //
                // 1. Create instance of the sync components (client, agent, server)
                // In this demo the sync agent will connect to the server through WebService.
                // A web reference is added to the project and I created a thin wrapper SyncServerProviderProxy
                // That inherits from SyncServerProvider base class and redirect the calls to the web service.               
                //
                //               

                //Initialisation de l'agent et des webservices
                string nomDB = "InventaireMSF2";
                Microsoft.Synchronization.SyncAgent syncAgent = new Microsoft.Synchronization.SyncAgent();
                SyncWebServiceProxy.Service syncWebService = new SyncWebServiceProxy.Service();

                System.Net.NetworkCredential nc = new System.Net.NetworkCredential();
                nc.Domain = "SRVPOCKET";
                nc.UserName = "IUSR_SRVPOCKET";
                nc.Password = "azerty1234";
               
                syncWebService.Credentials = nc;
                syncWebService.PreAuthenticate = false;
                syncWebService.Url = "http://idtpf.no-ip.org/SyncWebServiceProxy/Service.asmx";

                syncAgent.RemoteProvider = new ServerSyncProviderProxy(syncWebService);
}
</code>
J'ai essaye d'ajouter dans le webservice une webfonction init(string nomBase) dans laquelle j'ai mis this.nomBDD = nomBase et j'ai copié  le code de la fonction service() ensuite sur le client après :
SyncWebServiceProxy.Service syncWebService = new SyncWebServiceProxy.Service();
j'ai rajouté
syncWebService.init("BaseX");

Mais lorsque j'execute mon appli au moment de la synchro je recoit le message "une exception a ete leve par la cible d'un appel"

Je ne vois pas comment m'en sortir alors que cela à l'air simple.

Si quelqu'un peut m'aider j'en serais très heureux =)

Sam

Mais cela ne marche pas il me 


Classé sous : service, builder, webservice, synchronization, syncwebservice

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS