IIS7.5+ 打开PUT方法上传文件

  1. 安装WebDAV、windows身份验证(以win10为例)
    控制面板–程序和功能–启用或关闭windows功能
    Internet Infomation Services–万维网服务–安全性,勾上:windows身份验证
    Internet Infomation Services–万维网服务–常见HTTP功能,勾上:WebDAV发布
  2. 配置WebDAV
    打开IIS管理器,点击网站根目录
    打开WebDAV创作规则,
    1)启用WebDAV
    2)添加创作规则,选择“全部内容”、“所有用户”、勾上权限“读取”、“源”、“写入”
    3)打开WebDAV设置,
    允许谓词筛选、允许文件扩展名筛选、允许隐藏段筛选、允许匿名属性查询、允许属性查询具有无限深度,设置为TRUE
    允许自定义属性,设置为FALSE
  3. 配置windows身份验证
    打开身份验证,启用Windows身份验证、匿名身份验证
  4. 打开模块,确定WebDavModule在模块中
  5. 打开处理程序映射,确定有*映射到WebDavModule

 

参考的web.config文件配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <modules>
            <remove name="WebDAVModule" />
            <add name="WebDAVModule" />
        </modules>
    <handlers>
	<add name="WebDAVModule" path="*" verb="*" modules="WebDAVModule" resourceType="File" requireAccess="None" />
    </handlers>
    </system.webServer>
</configuration>

 

 

配置好后,用以下代码进行测试(C#):

using System;
using System.Net;

namespace Test
{
    class Program
    {

        static void Main(string[] args)
        {
            WebClient _webClient = new WebClient();
            _webClient.Credentials = new NetworkCredential("huqingyu", "pwd1234567");
            Uri _uri = new Uri(@"http://192.168.8.166/test.txt");

            _webClient.UploadProgressChanged += _webClient_UploadProgressChanged;
            _webClient.UploadFileCompleted += _webClient_UploadFileCompleted;


            _webClient.UploadFileAsync(_uri, "PUT", @"o:\1.txt");
            Console.ReadKey();
        }
        private static void _webClient_UploadFileCompleted(object sender, UploadFileCompletedEventArgs e)
        {
            Console.WriteLine("Upload Completed...");
        }

        private static void _webClient_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
        {
            Console.WriteLine($"{e.ProgressPercentage}:{e.BytesSent}/{e.TotalBytesToSend}");
        }
    }
}