Bonjour,
Mon environnement de travail est sous Visual Studio 2005 en .NET 3.5.
Je cherche à publier un workflow persistent en tant que webservice, avec stockage sur une base de données Oracle 10g.
Afin de bien comprendre le principe de la publication, j'ai commencé par réaliser un simple workflow séquentiel proche du tutoriel "Développez" avec l’œuf à cuire : une simple division de deux nombres (cf pièce jointe "workflow").
L'input du webservice reçoit deux nombres (dividende et diviseur), calcule la division dans le code, et renvoie en output le quotient.
Je publie ensuite ce workflow en tant que webservice, ce qui me rend un fichier ".asmx" et le "web.config".
Au lieu d'utiliser une application cliente, j'utilise directement ASP.NET pour tester la validité du webservice. Ce dernier fonctionne d'ailleurs comme le montre la seconde pièce-jointe "Appel_WS".
Cependant, je n'arrive pas à faire comprendre au web.config que c'est à ma base Oracle qu'il doit se connecter, et non au SQLServeur (qui d'ailleurs est arrêté).
Voici l'erreur :System.ArgumentException: Impossible d'activer la connexion à la base de données.
Nom du paramètre: connectionString ---> System.Data.SqlClient.SqlException: Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: Fournisseur de canaux nommés, error: 40 - Impossible d'ouvrir une connexion à SQL Server)
Pourtant, je pense avoir bien renseigné dans le web.config où il doit se connecter ... Ci-dessous mon web.config :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <?xml version="1.0"?> <configuration> <configSections> <section name="WorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </configSections> <WorkflowRuntime Name="WorkflowServiceContainer"> <CommonParameters> <add name="ConnectionString" value="Data Source=my_source;user id=xxxx; password=yyyy;"/> </CommonParameters> <Services> <add type="System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" UseActiveTimers="true"/> <add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" UnloadOnIdle="true" LoadIntervalSeconds="5"/> </Services> </WorkflowRuntime> <appSettings> </appSettings> <connectionStrings> <add name="ORACLE" connectionString="Persist Security Info=True; Data Source=my_source; user id=xxxx; password=yyyy; Unicode=True" providerName="System.Data.OracleClient" /> </connectionStrings> <system.web> [...] <httpModules> <add type="System.Workflow.Runtime.Hosting.WorkflowWebHostingModule, System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="WorkflowHost"/> </httpModules> </system.web> </configuration>
Autre précision, Visual Studio arrive à ouvrir ma base Oracle avec l'explorateur de serveurs.
Merci d'avance de votre aide,
vampirella.
Partager