WCF Upload fichier vers webservice
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:
1 2 3 4 5 6 7 8 9
| public interface IUploadFichier
{
[OperationContract]
void DoWork();
[OperationContract]
void UploadFile(byte[] f, string fileName);
}
} |
Code:
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();
}
} |
Puis l'appel sur mon client :
Code:
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();
} |
Le web.config :
Code:
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.