Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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#_Sharepoint_Httpwebrequest - Fatal编程技术网

C# 即使上载请求超时,文件仍显示在目标中

C# 即使上载请求超时,文件仍显示在目标中,c#,sharepoint,httpwebrequest,C#,Sharepoint,Httpwebrequest,给定以下代码 public static void Upload(Uri target, Stream content) { var request = (HttpWebRequest)WebRequest.Create(target); request.UseDefaultCredentials = true; request.Method = WebRequestMethods.Http.Put; request.ContentType = "applicat

给定以下代码

public static void Upload(Uri target, Stream content)
{
    var request = (HttpWebRequest)WebRequest.Create(target);
    request.UseDefaultCredentials = true;
    request.Method = WebRequestMethods.Http.Put;
    request.ContentType = "application/octet-stream";

    using (Stream requestStream = request.GetRequestStream())
    {
        content.CopyTo(requestStream);
    }

    using (var response = (HttpWebResponse)request.GetResponse())
    {

    }
}
我看到了我在特定场景中没有预料到的结果

我的上载请求的目标是SharePoint系统,如果我上载的文件足够大,导致请求超时,则会抛出
WebException
,并显示消息“操作超时”。到目前为止一切都很好

奇怪的是,如果我重新运行相同的代码(即使是在一个新的进程中),那么在它再次失败并出现另一个超时后,文件实际上会出现在目标中。它似乎没有被破坏或部分上传,因为我可以下载它,它似乎完全完好无损


在创建请求时,我是否应该指定一些其他内容来防止这种情况发生?我知道我可以通过在超时的情况下执行仅头部请求来解决这个问题,以验证文件是否确实是由它组成的,但如果可能的话,我更喜欢更健壮的文件。

也许您可以尝试修改web配置文件

这是我的网站配置httpRuntime。您可以修改执行超时


希望这能有所帮助。

最佳方法-使用Sharepoint web界面。

在“管理中心”的“应用程序管理”中,单击“管理web应用程序”。
选择应用程序(例如SharePoint-80)。
在Web应用程序功能区上,单击“常规设置”按钮上的向下箭头。
单击常规设置。
滚动至最大上载大小。
将属性设置为与Excel Services中最大工作簿大小相同的数字。

单击“确定”。

但超时并不是真正的问题-上传失败是完全正确的。只是上传成功时抛出异常的行为给我带来了问题。我遇到了完全相同的问题,你解决过这个问题吗?如果你做了,你是怎么做的?