使用 HttpWebRequest,将文件上传到 SharePoint 时,WebResponse 是未编译的 aspx 页面

Posted

技术标签:

【中文标题】使用 HttpWebRequest,将文件上传到 SharePoint 时,WebResponse 是未编译的 aspx 页面【英文标题】:Using HttpWebRequest, WebResponse is uncompiled aspx page when uploading file to SharePoint 【发布时间】:2012-02-11 11:55:18 【问题描述】:

这是一个奇怪的问题。多年来,将文件上传到 SharePoint 的一些代码一直在我的开发机器上运行。前几天它刚刚停止工作!没有抛出异常,但是 WebResponse 中返回了一个奇怪的响应字符串。代码如下:

            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(absoluteUrl);

            if (this._authenticationService == null)
            
                // Windows authentication
                request.Credentials = _credentials;
            
            else
            
                // Forms authentication
                request.CookieContainer = this._authenticationService.CookieContainer;
            

            request.Method = "PUT";
            byte[] buffer = new byte[4 * 1024];
            using (Stream stream = request.GetRequestStream())
            
                using (FileStream fs = File.OpenRead(localFilePath))
                
                    for (int i = fs.Read(buffer, 0, buffer.Length); i > 0; i = fs.Read(buffer, 0, buffer.Length))
                    
                        stream.Write(buffer, 0, i);
                    
                
            
            WebResponse response = request.GetResponse();
            response.Close();

如果我像这样添加一些代码来检查实际响应:

StreamReader responseReader = new StreamReader(response.GetResponseStream());

responseReader.ReadToEnd();

该代码的输出是这样的,一个看似未编译的 aspx 页面!!!:

\ r\n \r\n\r\ n\t\" EncodeMethod='htmlEncode'/>\r\n\r\n\r\n\t\" EncodeMethod='HtmlEncode'/>\r\n\r\n\r\n\t\ r\n\t\r\n\r\n\r\n \r\n\t\r\n\t\r\n\t \r\n\t\t \r\n\t \ r\n\t

\r\n\t\t\r\n\t\t\t\ t\" EncodeMethod=\"NoEncode\" runat=\"server\"> \" EncodeMethod='HtmlEncode'/> \r\n\t\t\r\n\t\t \t\t\" EncodeMethod=\"NoEncode\" runat=\"server\"

\" EncodeMethod='HtmlEncode'/> \r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n \ r\n\r\n\t var gearPage = document.getElementById('GearPage');\r\n\t if(null != gearPage)\r\n\t \r\n\t\t gearPage .parentNode.removeChild(gearPage);\r\n\t\t document.title = \"' EncodeMethod='HtmlEncode'/>\";\r\n\t \r\n\r\n

发生了什么?!?!

【问题讨论】:

【参考方案1】:

好的,我放弃并卸载并重新安装了带有 SP2 的 WSS,以及最新的累积更新包,并重新连接到现有的场,这样就解决了这个问题!

【讨论】:

以上是关于使用 HttpWebRequest,将文件上传到 SharePoint 时,WebResponse 是未编译的 aspx 页面的主要内容,如果未能解决你的问题,请参考以下文章

上传速度问题:HttpWebRequest [重复]

如何使用 HttpWebRequest 模拟浏览器文件上传

转asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端

在 HttpWebRequest 文件发布时赢得表单应用程序冻结

HttpClient 与 HttpWebRequest

在使用 HttpWebRequest Post数据时候返回 400错误