C# ASP.NET StreamWriter不连续工作
我们遇到了一个问题,我们有一个函数被调用来创建FTP设置文件,但是有时这个函数从未被调用(因为FTP设置文件从未存在),并且这个问题是间歇性的。此函数在C# ASP.NET StreamWriter不连续工作,c#,asp.net,iis-7,ftp,streamwriter,C#,Asp.net,Iis 7,Ftp,Streamwriter,我们遇到了一个问题,我们有一个函数被调用来创建FTP设置文件,但是有时这个函数从未被调用(因为FTP设置文件从未存在),并且这个问题是间歇性的。此函数在 Directory.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath(UploadPath)); public bool GenerateFTPSettings() { try { using (System.IO.StreamWr
Directory.CreateDirectory(System.Web.HttpContext.Current.Server.MapPath(UploadPath));
public bool GenerateFTPSettings()
{
try
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(HttpContext.Current.Server.MapPath((string)HttpContext.Current.Session["UploadPath"]) + @"\ftp_settings.ftp"))
{
file.WriteLine(string.Format("user {0}",ConfigurationManager.AppSettings["FTPUserName"]));
file.WriteLine(ConfigurationManager.AppSettings["FTPPassword"]);
file.WriteLine(string.Format("QUOTE SITE LRECL=80 RECFM=FB CY PRI={0} SEC={1}", ConfigurationManager.AppSettings["PRI"], ConfigurationManager.AppSettings["SEC"]));
file.WriteLine("BIN");
file.WriteLine(string.Format("put {0}\\NEW FILE'FTPP.Z.T.{1}.{2}.INT'", HttpContext.Current.Server.MapPath((string)HttpContext.Current.Session["UploadPath"]),
ConfigurationManager.AppSettings["FTPUserName"], ConfigurationManager.AppSettings["MailboxID"]));
file.WriteLine("QUIT");
}
return true;
}
catch (Exception ex)
{
ErrorHandler.WriteError(ex, "Upload");
return false;
}
}
我认为可能有两件事。确保像这样冲洗您的流:
using (System.IO.StreamWriter file = new System.IO.StreamWriter("somefile")
{
//write to the stream
file.Flush();
}
此外,您是否确定会话具有以下值:
HttpContext.Current.Session["UploadPath"]
它是否总是被填充,或者是否从会话中丢失?我将拆分逻辑,以确保其设置如下:
string uploadPath = HttpContext.Current.Session["UploadPath"];
if (!string.IsNullOrEmpty())
{
//write to the file
}
我认为可能有两件事。确保像这样冲洗您的流:
using (System.IO.StreamWriter file = new System.IO.StreamWriter("somefile")
{
//write to the stream
file.Flush();
}
此外,您是否确定会话具有以下值:
HttpContext.Current.Session["UploadPath"]
它是否总是被填充,或者是否从会话中丢失?我将拆分逻辑,以确保其设置如下:
string uploadPath = HttpContext.Current.Session["UploadPath"];
if (!string.IsNullOrEmpty())
{
//write to the file
}
感谢您的回答,会话始终具有一个值,因为该值稍后将用于生成更多文件。。只有在生成FTP设置文件时才会出现问题。感谢您的回答,会话始终有一个值,因为该值稍后将用于生成其他文件。。只有在生成FTP设置文件时,才会出现此问题。。