2012-01-25 4 views
1

IIS 인스턴스에 업로드라는 폴더가 있습니다. 내 안드로이드 응용 프로그램에서 HTTP POST를 수행하여 파일을 IIS 서버에 업로드합니다.IIS에서 업로드를 활성화하는 방법

이것은 작동하지 않습니다. 작업은 다음과 같습니다 (이것은 실패한 요청 로깅의 일부입니다).

<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" 
      > 

그래서 우리는 405를 얻고 있습니다. IIS에서 더 많은 것을 구성해야합니까?

PhoneGap API를 사용하여 FileTransfer.upload 메소드를 사용하여 파일을 업로드하고 있습니다.

답변

1

IISweb server이며 빌드과 함께 제공되지 않습니다. 특정 urlPOST을 사용하여 파일을 업로드하려면 실제 웹 응용 프로그램을 만들어야합니다. 자세한 내용은 여기

읽기 : 내가 제안 할 수http://support.microsoft.com/kb/189651

가장 간단한 솔루션은 HttpHandler으로 새 asp.net 프로젝트를 만드는 것입니다 - (이이 될 수있는만큼 간단한 )이 같을 수있는 코드를 :

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; 
     } 
    } 
} 

,이 작은 파일에 대한 허용 있음을 유의하시기 바랍니다 당신이해야 하지 보다 두꺼운 무언가에 사용하십시오.

+0

정말인가요? 나는 HttpHandler를 만들고 싶지 않다. 파일을 폴더에 직접 업로드하기 만하면됩니다. 어쨌든 나는 그것을 줄 수도있다. – peter

+0

그럼 몇 MB가 넘는 파일에 어떤 용도로 사용 하시겠습니까? – peter

+0

'IIS' 파일 업로드 기능에 대한 자세한 내용을 보려면 링크를 추가했습니다. 대용량 파일의 경우 WCF/웹 서비스를 사용하고 매우 큰 파일 (~ 1GB)은 FTP 만 사용합니다. – MonkeyCoder

관련 문제