Bonjour à tous,
Je tente d'uploader un tableau d'octet sur mon WebService, quand je lance le webservice en local sur mon poste, il n'y a pas d'erreur et le fichier est bien uploadé. Mais lorsque je déploie le Webservice sur mon serveur cela ne fonctionne plus.
J'ai un service uploadFichier avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public interface IUploadFichier { [OperationContract] void DoWork(); [OperationContract] void UploadFile(byte[] f, string fileName); } }Puis l'appel sur mon client :
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 public class UploadFichier : IUploadFichier { public void DoWork() { } public void UploadFile(byte[] f, string fileName) { MemoryStream ms = new MemoryStream(f); FileStream fs = new FileStream(Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "fichier.txt"), FileMode.Create); ms.WriteTo(fs); ms.Close(); fs.Close(); fs.Dispose(); } }
Le 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 private void button1_Click_2(object sender, EventArgs e) { ServiceReference3.UploadFichierClient client = new ServiceReference3.UploadFichierClient(); FileInfo fInfo = new FileInfo(@"c:\Fichier.txt"); FileStream fStream = new FileStream(@"c:\Fichier.txt", FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fStream); long numBytes = fInfo.Length; byte[] data = br.ReadBytes((int)numBytes); br.Close(); client.UploadFile(data, "Fichier.txt"); fStream.Close(); fStream.Dispose(); }
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
33
34
35
36
37
38
39
40
41 <?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> </appSettings> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5"/> </system.web> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <!-- Pour éviter la divulgation d'informations de métadonnées, définissez les valeurs ci-dessous sur false avant le déploiement --> <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/> <!-- Pour recevoir les détails de l'exception dans les erreurs à des fins de débogage, définissez la valeur ci-dessous sur true. Pour éviter la divulgation d'informations d'exception, définissez-la sur false avant le déploiement --> <serviceDebug includeExceptionDetailInFaults="false"/> <useRequestHeadersForMetadataAddress> <defaultPorts> <add scheme="http" port="33915" /> <add scheme="https" port="33915" /> </defaultPorts> </useRequestHeadersForMetadataAddress> </behavior> </serviceBehaviors> </behaviors> <protocolMapping> <add binding="basicHttpsBinding" scheme="https" /> </protocolMapping> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/> </system.serviceModel> <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> <!-- Pour parcourir le répertoire racine de l'application Web lors du débogage, définissez la valeur ci-dessous sur true. Définissez-la sur false avant le déploiement pour ne pas divulguer d'informations du dossier de l'application Web. --> <directoryBrowse enabled="true"/> </system.webServer> </configuration>
Je pense que le problème vient du Web.config, mais après de multiples recherches je reste coincé.
D'avance merci pour vos réponses.
Partager