Bonjour,
Je suis face à un problème car je n'arrive pas à appeler mon service web par une référence web, alors qu'il fonctionne bien par référence de service.
Mon cas est le suivant :
- sur un serveur sql 2008 r2, j'ai un service windows qui héberge un web service WCF
- je développe une CLR SQL server qui doit appeler ce web service pour y récupérer les informations.
- Après plusieurs recherche sur le web il faut "apparemment" que je passe par une référence web au lieu de référence de service, car sinon lorsque je veux installer mon assembly sur SQL server, il faut que j'installe de nombreuses dll de référence (ce que je veux éviter)
Le plus étrange dans tout cas, c'est que lorsque je veux accéder à ma référence web (http://srv:9001/Xrate?wsdl) il me trouve bien les méthodes mais ca ne fonctionne pas
Voici le message d'erreur
Pour information,Ce document a été reconnu, mais il n'a pas pu être traité.
- Le document WSDL contient des liens qui n'ont pas pu être résolus.
- Une erreur s'est produite lors du téléchargement de 'http://localhost:9001/Xrate?xsd=xsd0'.
Le web service fonctionne correctement par le naviguateur (wsdl, rest, ...)
voici mon fichier de configuration du Service Windows avec la configuration du WCF
Code xml : 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <appSettings> <!--Paramètre debug dans le journal windows - 0 : Off / 1 : On--> <add key="debug" value="0" /> <!--Paramètre interval pour l'interval de récupération des valeurs - à définir en heures - --> <add key="interval" value="8" /> </appSettings> <connectionStrings> <!--<add name="CxDevise" connectionString="metadata=res://*/DeviseModel.csdl|res://*/DeviseModel.ssdl|res://*/DeviseModel.msl;provider=System.Data.SqlClient;provider connection string="data source=srvvqsql2;initial catalog=devise;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />--> <add name="CxDevise" connectionString="metadata=res://*/DeviseModel.csdl|res://*/DeviseModel.ssdl|res://*/DeviseModel.msl;provider=System.Data.SqlClient;provider connection string="data source=xxx;initial catalog=xxx;user id=xxx;Password=xxx;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings> <system.serviceModel> <services> <service name="Devise.WCF.DeviseWs" behaviorConfiguration="XrateServiceBehavior"> <!-- this endpoint is exposed at the base address provided by host: http://localhost:9001/Xrate --> <endpoint address="" binding="wsHttpBinding" contract="Devise.WCF.IDeviseWs" /> <!-- REST Endpoint is explosed at http://localhost:9001/Xrate/rest/... --> <endpoint address="rest" binding="webHttpBinding" contract="Devise.WCF.IDeviseWs" behaviorConfiguration="webHttp" /> <!-- the mex endpoint is explosed at http://localhost:9001/Xrate/mex --> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> <host> <baseAddresses> <add baseAddress="http://localhost:9001/Xrate" /> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="XrateServiceBehavior"> <serviceMetadata httpGetEnabled="true" /> </behavior> </serviceBehaviors> <endpointBehaviors> <behavior name="webHttp"> <webHttp /> </behavior> </endpointBehaviors> </behaviors> </system.serviceModel> <system.web> <customErrors mode="Off" /> </system.web> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters > <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework> </configuration>
Il y a peux être une autre solution pour appeler un WCF dans une CLR, si vous avez ca je suis preneur
Par avance merci du coup de main.
Partager