第一次海报,长期读者.我有一个非常烦人的问题,让我感到紧张.我已经设置了一个程序,所以我在FTP服务器上监听新文件,如果我下载了一个新文件.从那里我处理文件中的一些信息,等等.当我第二次运行我的序列时,我的问题出现了.也就是说,在我下载的第一个文件中,一切都很好,但是一旦检测到新文件并且我的程序尝试下载它,我的程序就会挂起.
private static void DownloadFile(string s)
{
try
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://blabla.com/"+s);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("xxx" ,"zzz");
using (FtpWebResponse partResponse = (FtpWebResponse)request.GetResponse())
{
Stream partReader = partResponse.GetResponseStream();
byte[] buffer = new byte[1024];
FileInfo fi = new FileInfo(path);
FileStream memStream = fi.Create();
while (true)
{
int bytesRead = partReader.Read(buffer, 0, buffer.Length - 1);
if (bytesRead == 0)
break;
memStream.Write(buffer, 0, bytesRead);
}
partResponse.Close();
memStream.Close();
}
Console.WriteLine(DateTime.Now + " file downloaded");
MoveFileToInProgress(s);
}
catch (Exception e)
{
Console.WriteLine(e.Message); …Run Code Online (Sandbox Code Playgroud) 在您说什么之前,我已经阅读了有关此问题的先前提出的问题.那里的答案并没有解决我的问题.
我想,如果你知道答案的话,这很简单.这是我的问题:
我有几个项目的解决方案,我正在创建一个基于插件的应用程序,我使用Reflection来加载所有程序集.这部分没问题,我加载了所有的程序集
var filePaths = Directory.GetFiles(@"C:\CustomerServiceModule\", "*.dll", SearchOption.AllDirectories).Where(n => n.Contains("bin"));
foreach (var f in filePaths)
{
Assembly.LoadFile(f);
}
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个类型的实例,所以我可以使用它:
var assembly = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.ManifestModule.Name == "Kayako.dll").SingleOrDefault();
var name = assembly.GetTypes();
var type = assembly.GetType("Kayako.KayakoData");
var lol = Activator.CreateInstance(type);
Run Code Online (Sandbox Code Playgroud)
这很糟糕,因为在KayakoData中我有这个:
KayakoService _service = new KayakoService("xxx", "yyy", "zzz");
Run Code Online (Sandbox Code Playgroud)
这个服务是一个有效的程序集,我以前用过它.版本号很好,GAC中没有任何内容覆盖它,我看不到使用程序集绑定日志查看器的任何错误.我仍然收到此错误:
[System.LoadTypeException] {"无法从程序集'KayakoRestAPI,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'KayakoRestAPI.KayakoService'.":"KayakoRestAPI.KayakoService"}
有人有什么好主意吗?我一直盯着自己.如果我从KayakoData中删除服务部分,整个过程都有效,但我确实需要运行该服务.