Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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# FtpWebRequest连接组名称练习问题_C#_Ftpwebrequest - Fatal编程技术网

C# FtpWebRequest连接组名称练习问题

C# FtpWebRequest连接组名称练习问题,c#,ftpwebrequest,C#,Ftpwebrequest,我有一个关于请求的问题。ConnectionGroupName。 我知道我应该对相同的主机URL使用相同的GroupnName,因为MaxServicePointIdleTime是100秒,其中包含该GroupName的所有请求都会被回收 我现在想知道的是,对于同一主机,为不同的请求使用不同的组名是好是坏,如果我在下面说明我的意思: request.Method=WebRequestMethods.Ftp.UploadFile;request.ConnectionGroupName=“Group

我有一个关于
请求的问题。ConnectionGroupName
。 我知道我应该对相同的主机URL使用相同的GroupnName,因为
MaxServicePointIdleTime
是100秒,其中包含该GroupName的所有请求都会被回收

我现在想知道的是,对于同一主机,为不同的
请求使用不同的组名是好是坏,如果我在下面说明我的意思:

request.Method=WebRequestMethods.Ftp.UploadFile;request.ConnectionGroupName=“Group1”;
request.Method=WebRequestMethods.Ftp.DownloadFile;request.ConnectionGroupName=“Group2”;
request.Method=WebRequestMethods.Ftp.DeleteFile;request.ConnectionGroupName=“Group3”;

完整的代码示例:Ftp.UploadFile

void uploadimage()
{
字符串sourceimage=“C:/ESD/image_2.jpg”;
Task Task=FtpUploadFile(sourceimage);
如果(task.IsFaulted==false)
{
Show(task.Result.ToString());
}
}
私有任务closeRequestStreamAsync(Stream requestStream){return Task.Run(()=>{requestStream.Close();});}
公共异步任务FtpUploadFile(字符串文件名)
{
//如果发生异常,我们希望能够关闭这些
FtpWebResponse响应=null;
FtpWebRequest请求=null;
FileStream sourceStream=null;
Stream requestStream=null;
尝试
{
bool isimage=false;String ext=Path.GetExtension(文件名);
如果(ext==“.jpg”| ext==”.jpeg”| ext==“.png”| ext==”.gif”| ext==“.bmp”){.isimage=true;}
请求=(FtpWebRequest)WebRequest.Create(“ftp://someurl.com/Folder1/test1.jpg");
request.usesponsive=true;
如果(isimage==true){request.UseBinary=true;}//for image
如果(isimage==false){request.UseBinary=false;}//for text
request.KeepAlive=true;//保持连接打开
request.Method=WebRequestMethods.Ftp.UploadFile;
request.ConnectionGroupName=“Group1”;
request.ServicePoint.ConnectionLimit=4;
//这些是证件。
request.Credentials=新的网络凭据(“用户名”、“密码”);
sourceStream=File.OpenRead(文件名);
byte[]buffer=新字节[sourceStream.Length];
等待sourceStream.ReadAsync(buffer,0,buffer.Length);
sourceStream.Close();
requestStream=等待请求。GetRequestStreamAsync();
wait requestStream.WriteAsync(buffer,0,buffer.Length);
//这是一个需要时间的电话
等待closeRequestStreamAsync(requestStream);
//response=(FtpWebResponse)request.GetResponse();
WebResponse responseWeb=等待请求。GetResponseAsync();
响应=(FtpWebResponse)响应Web;
if(response.StatusDescription.Contains(“226”))
{
//这意味着我们已成功上传该文件!
}
response.Close();
返回true;
}
捕获(例外情况除外)
{
string errMSG=string.Format(“上载文件失败,异常:{0}”,ex.Message);
返回false;
}

}
我确实在:
https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest.connectiongroupname?view=netframework-4.8
“使用连接组可以提高性能,因为这允许用户的所有请求重新使用通过用户凭据验证的连接。”上述内容是否意味着可以对相同的组名使用:
Ftp.UploadFile、Ftp.DownloadFile、Ftp.DeleteFile
或者我应该为方法使用不同的组名吗?(主机和凭据相同)