我正在使用Roslyn动态编译任意*.cs文件.我能够生成DLLs和PDBs,并通过反射执行加载的程序集内的方法,而是附着在VS调试器时System.Diagnostics.Debugger.Launch(),我得到"源不可用"的错误.VS中的"模块"窗口显示符号已成功加载.有问题的源存在于同一解决方案下的项目中,但直到运行时才会编译.
有没有人成功地使这个工作?谢谢!
复制:https://gist.github.com/toraora/a9d4eb8679383fe659da04d3be5c2d6e(当我在这台机器上设置SSH密钥时,我会提出实际的解决方案)
在MVC5中,我有一个控制台应用程序,它将使用Microsoft.Owin.Hosting.WebApp.Start(...)来托管一堆控制器,这些控制器将从放置在外部文件夹中的程序集动态加载并对它们运行一些自定义初始化通过API调用.这样我就可以将参数传递给在运行时确定的初始化方法(并且不像维护配置文件那样笨重).
在MVC6中,据我所知,自我托管由DNX运行时使用Microsoft.AspNet.Hosting完成,但这都是通过命令行完成的.有没有办法可以在C#控制台应用程序中自我托管,这样我就可以保留这种初始化架构?
我正在尝试最大限度地提高 PostgreSQL 数据库的吞吐量,并且可以通过从线程池转移到异步查询来获得巨大的性能飞跃。这async是将执行所述查询的代码版本:
using (var conn = new NpgsqlConnection(connStr)) {
await conn.OpenAsync();
var id = await conn.ExecuteScalarAsync<long>(
"my_proc",
param_obj,
commandType: CommandType.StoredProcedure,
commandTimeout: 0
);
return id;
}
Run Code Online (Sandbox Code Playgroud)
以前,当使用线程池时,我可以通过简单地设置线程数来设置任何给定时间的最大打开连接数(如果我超过了 MaxPoolSize,我会看到池耗尽/超时异常,正如预期的那样)。但是,在这种情况下,连接数会不会很快爆炸?也许我不知道有一种更规范的方法可以做到这一点。