Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件上载时发生未经授权的错误_C#_Asp.net_File_Httpwebrequest - Fatal编程技术网

C# 文件上载时发生未经授权的错误

C# 文件上载时发生未经授权的错误,c#,asp.net,file,httpwebrequest,C#,Asp.net,File,Httpwebrequest,我有一个asp.net应用程序,可以将文件提交到sharepoint文档库。 每次它试图提交,我都会得到一个 远程服务器返回错误:(401)未经授权 这是c代码 这在我的本地机器上运行良好,但当我将其部署到测试环境时,会引发401错误。IIS配置为匿名身份验证。我想这与文件上传有关?任何见解或想法都将受到赞赏 谢谢您应该向应用程序池用户帐户授予“写入文件夹”权限。您已经启用了匿名身份验证,该身份验证按预期工作,但您尝试执行的操作可能未经授权。这可能会有所帮助——但这是否只与web api有关?我

我有一个asp.net应用程序,可以将文件提交到sharepoint文档库。 每次它试图提交,我都会得到一个

远程服务器返回错误:(401)未经授权

这是c代码

这在我的本地机器上运行良好,但当我将其部署到测试环境时,会引发401错误。IIS配置为匿名身份验证。我想这与文件上传有关?任何见解或想法都将受到赞赏


谢谢

您应该向应用程序池用户帐户授予“写入文件夹”权限。

您已经启用了匿名身份验证,该身份验证按预期工作,但您尝试执行的操作可能未经授权。这可能会有所帮助——但这是否只与web api有关?我不是真的在用MVC。这只是在一个按钮上调用clickNot sure mate,只是想强调授权和身份验证是两个独立的东西。它可能与文件夹权限有关。检查答案,因为它可能会有帮助(特别是子代码和权限)。我已经尝试过了。服务帐户对文档库具有完全控制权
                    byte[] buffer = new byte[length];
                    postedFile.InputStream.Read(buffer, 0, length);


                    Uri address = new Uri(url);
                    HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
                    request.Method = "POST";

                    request.UseDefaultCredentials = true;

                    request.Accept = "application/json;odata=verbose";
                    request.Headers.Add("X-RequestDigest", dvalue);
                    request.ContentType = "application/json; charset=utf-8";
                    request.ContentLength = length;
                    using (Stream postSTream = request.GetRequestStream())
                    {
                        postSTream.Write(buffer, 0, length);
                    }
                    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                    {
                        StreamReader reader = new StreamReader(response.GetResponseStream());
                    }