0
今天,我在我們的系統調查進展緩慢。通過插入一些調試日誌,我把範圍縮小到這一段:爲什麼Container.Configure需要這麼長時間?
var db = MyDbContext.ForShard(shardKey);
_logger.Debug("Point 1");
container.Configure(cfg =>
{
_logger.Debug("Anon 1");
cfg.For<MyDbContext>().Use(db);
_logger.Debug("Anon 2");
});
_logger.Debug("Point 2");
數據庫是分片,並shardKey
標識要使用的碎片。對MyDbContext.ForShard()
的調用返回一個數據庫連接,其連接字符串引用正確的分片。有問題的片段然後告訴StructureMap Container
使用此實例進行依賴注入。
在日誌中,每一行之間的時間延遲是可以忽略的,除了「匿名2」和「點2」之間的間隙,這可能需要在第二的區域中。不好。但是我從來沒有見過StructureMap花費這麼久來配置一個用法。
我在這裏做錯了什麼?
建立一個容器需要時間。對於大型應用程序來說,許多秒也不例外。爲什麼延遲1秒是一個問題? – Steven