2012-01-25 5 views
1

J'ai un dossier sur mon instance IIS appelé Uploads. Je fais un HTTP POST à ​​partir de mon application Android pour télécharger un fichier sur le serveur IIS.Comment activer le téléchargement dans IIS

Cela ne fonctionne pas. L'opération ressemble à ceci (cela fait partie de l'enregistrement de la demande a échoué),

<failedRequest url="http://*ADDRESS*:80/JsonWCFService/Uploads" 
      siteId="1" 
      appPoolId=".NET4 App Pool" 
      processId="1176" 
      verb="POST" 
      remoteUserName="" 
      userName="" 
      tokenUserName="NT AUTHORITY\IUSR" 
      authenticationType="anonymous" 
      activityId="{00000000-0000-0000-6800-0080000000FA}" 
      failureReason="STATUS_CODE" 
      statusCode="200" 
      triggerStatusCode="405" 
      timeTaken="63" 
      xmlns:freb="http://schemas.microsoft.com/win/2006/06/iis/freb" 
      > 

Nous obtenons donc un 405 là-bas. Ai-je besoin de configurer quelque chose de plus dans IIS? J'utilise l'API PhoneGap pour télécharger le fichier en utilisant la méthode FileTransfer.upload.

Répondre

1

IIS est un web server et il ne vient pas avec un upload handler intégré. Si vous souhaitez télécharger des fichiers en utilisant POST sur un url spécifique, vous devrez créer une application Web réelle.

En savoir plus ici:http://support.microsoft.com/kb/189651

La solution que je peux proposer la plus simple est de créer un nouveau projet asp.net avec un HttpHandler - le code pourrait ressembler à ceci (aussi simple que possible) :

public class UploadHandler : IHttpHandler, IRequiresSessionState 
{   
    public void ProcessRequest(HttpContext context) 
    { 
     try 
     { 
      HttpPostedFile file = context.Request.Files[0]; 
      file.SaveAs(path); 
     } 
     catch (Exception ex) 
     { 
      // include your custom logging code 
      // Log.Error(ex.Message, ex); 
      throw; 
     } 
    } 
} 

S'il vous plaît garder à l'esprit que ce qui est acceptable pour petits fichiers, vous ne devriez pas l'utiliser pour quelque chose de plus lourd que deux MB.

+0

Etes-vous sûr? Je ne veux pas créer un HttpHandler. Je veux juste que les fichiers soient téléchargés directement dans un dossier. Peu importe, je pourrais essayer. – peter

+0

Alors, que feriez-vous pour les fichiers sur quelques MB? – peter

+0

J'ai ajouté un lien pour plus de détails sur la fonctionnalité de téléchargement de fichier 'IIS'. Pour les fichiers volumineux, j'irais avec un service WCF/Web et pour les fichiers extrêmement volumineux (~ 1 Go), je ne ferais que du FTP. – MonkeyCoder

Questions connexes