Как включить загрузку в IIS - PullRequest
1 голос
/ 25 января 2012

В моем экземпляре IIS есть папка под названием Uploads. Я выполняю HTTP POST из приложения Android для загрузки файла на сервер 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 Ответ

1 голос
/ 25 января 2012

IIS - это web server, и он не поставляется со встроенным upload handler. Если вы хотите загружать файлы, используя POST на конкретном url, вам необходимо создать реальное веб-приложение.

Подробнее здесь: http://support.microsoft.com/kb/189651

Самое простое решение, которое я могу предложить, - это создать новый проект asp.net с HttpHandler - код может выглядеть примерно так ( настолько просто, насколько это возможно ):

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

Имейте в виду, что это приемлемо для небольших файлов, вы должны не использовать его для чего-то более тяжелого, чем пара МБ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...