C# 无法访问已释放的对象。对象名称:';System.Net.Sockets.NetworkStream';
从ftp服务器读取文件在loop thorws error无法访问已处理对象时完成读取文件。C# 无法访问已释放的对象。对象名称:';System.Net.Sockets.NetworkStream';,c#,C#,从ftp服务器读取文件在loop thorws error无法访问已处理对象时完成读取文件。 对象名称:“System.Net.Sockets.NetworkStream”。在继续之前,您需要检查FtpWebResponseStatusCode。有时请求可能会失败 string strConn = ConfigurationManager.ConnectionStrings["Connection"].ConnectionString.ToString(); Sq
对象名称:“System.Net.Sockets.NetworkStream”。在继续之前,您需要检查
FtpWebResponse
StatusCode
。有时请求可能会失败
string strConn = ConfigurationManager.ConnectionStrings["Connection"].ConnectionString.ToString();
SqlConnection con = new SqlConnection(strConn);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftpserver");
request.Credentials = new NetworkCredential("username", "pass");
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responsestream = response.GetResponseStream();
StreamReader sr = new StreamReader(responsestream);
SqlBulkCopy bc = new SqlBulkCopy(con.ConnectionString, SqlBulkCopyOptions.TableLock);
try
{
string line = sr.ReadLine();
string[] value = line.Split(',');
DataTable dt = new DataTable();
DataRow row;
foreach (string dc in value)
{
dt.Columns.Add(new DataColumn(dc));
}
while (!sr.EndOfStream)
{
value = sr.ReadLine().Split(',');
if (value.Length == dt.Columns.Count)
{
row = dt.NewRow();
row.ItemArray = value;
dt.Rows.Add(row);
}
}
bc.DestinationTableName = "CSVTest";
bc.BatchSize = dt.Rows.Count;
con.Open();
bc.WriteToServer(dt);
//File.Open(str1, FileMode.Open, FileAccess.Read, FileShare.None);
using (var writer = new StreamWriter(responsestream))
{
writer.Write("");
}
}
catch (ObjectDisposedException a)
{
Console.WriteLine("Caught: {0}", a.Message);
}
finally
{
//Closing Bulk Copy
bc.Close();
//Closing Sql Connection
con.Close();
//Dispose method internally calls Close..So you dont need to call the close explicitly.
sr.Dispose();
}
检查此->
响应。StatusCode
这与其说是一个问题,不如说是一个陈述……我强烈建议阅读有关使用块的内容。检查此请获取错误错误非发票成员'System.Net.FtpWebResponse.StatusCode'不能像方法一样使用。@Pradip:您能告诉我您是如何访问StatusCode I的吗假设您正在访问:response.StatusCode()?错误:只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句
FtpWebResponse response = (FtpWebResponse)request.GetResponse();