C# PUT API请求-(IIS媒体服务API)

C# PUT API请求-(IIS媒体服务API),c#,iis,httpwebrequest,httpverbs,expression-encoder,C#,Iis,Httpwebrequest,Httpverbs,Expression Encoder,我正在尝试完成对IIS媒体服务API的PUT请求,以尝试将发布点设置为“已停止”状态 我已经阅读了下面的链接,这对我帮助不大! 我的当前代码在httpWebRequest1.GetResponse()上引发异常,它表示web服务器正在返回401未经授权的错误代码: string url = "http://localhost/LiveStream.isml/State"; var httpWebRequest1 = (HttpWebRequest)WebRequest.Cre

我正在尝试完成对IIS媒体服务API的PUT请求,以尝试将发布点设置为“已停止”状态

我已经阅读了下面的链接,这对我帮助不大!

我的当前代码在httpWebRequest1.GetResponse()上引发异常,它表示web服务器正在返回401未经授权的错误代码:

string url = "http://localhost/LiveStream.isml/State";

        var httpWebRequest1 = (HttpWebRequest)WebRequest.Create(url);
        httpWebRequest1.ContentType = "application/atom+xml";
        httpWebRequest1.Method = "PUT";
        httpWebRequest1.Headers.Add("Authorization", "USERNAME:PASSWORD");


        using (var streamWriter = new StreamWriter(httpWebRequest1.GetRequestStream()))
        {
            XmlDocument document = new XmlDocument();
            document.Load("Resources/XMLFile1.xml");
            string test = GetXMLAsString(document);

            streamWriter.Write(test);
        }
        var httpResponse = (HttpWebResponse)httpWebRequest1.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            var responseText = streamReader.ReadToEnd();

        }
我的用户名/密码被注释掉了,但是当在浏览器中访问页面并在打开的用户名/密码表单中输入它们时,它们可以正常工作

我的脚本本质上是“放置”一个XML文档,它是在浏览器中访问状态页时返回的XML文档的副本


任何帮助都将不胜感激。

禁用WebDav本机模块。请参阅:嗨,Kev,谢谢你的建议-WebDav已经在IIS中的网站上被禁用。好的……那么现在我将启用失败的请求跟踪以查看引擎盖下发生了什么。这将告诉您请求管道中的哪个模块或位置将引发401。请参见我之前的回答: