我的IIS实例上有一个名为Uploads的文件夹。我正在从Android应用程序执行HTTP POST以将文件上载到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方法上传文件。
答案 0 :(得分:1)
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;
}
}
}
请注意,这对于小型文件是可以接受的,您应该不将其用于重于 MB 的文件。< / p>