【发布时间】:2011-07-26 13:20:58
【问题描述】:
为什么 SolrNet 连接的容器保持静态?这是一个非常大的错误,因为在我们的应用程序中,当我们向我们的应用程序发送异步请求时,SolrNet 行为异常。如何在 SolrNet 中避免这个问题?
class P
{
static void M(string[] a)
{
Thread t = new Thread(delegate()
{
f1();
});
Thread t1 = new Thread(delegate()
{
f2();
});
t.Start();
t1.Start();
t.Join();
t1.Join();
}
static void f1()
{
Startup.Init<Doc>(new SolrNet.Impl.SolrPostConnection("http://localhost:8983/solr3/"));
ISolrOperations<Doc> solrOperations2 = ServiceLocator.Current.GetInstance<ISolrOperations<Document>>();
}
static void f2()
{
Startup.Init<Doc>(new SolrNet.Impl.SolrPostConnection("http://localhost:8983/solr1/"));
ISolrOperations<Doc> solrOperations2 = ServiceLocator.Current.GetInstance<ISolrOperations<Document>>();
}
}
【问题讨论】:
-
您看到的错误或异常行为是什么?
-
在我的应用程序中,我有多个 solr 索引,比如说 5,我有 5 个单独的类,代表一个 solr 文档。现在异常行为是在一种特殊情况下,我向应用程序发送异步请求,其中错误键已存在于容器中。
-
你能发布一个失败的测试,或者至少是完整的堆栈跟踪吗?
-
在 SolrNet.Utils.Container.Register(String key, Type serviceType, Converter
2 factory) in D:\solrNet\SolrNet\Utils\Container.cs:line 83 at SolrNet.Utils.Container.Register[T](String key, Converter2 factory) 在 D:\solrNet\SolrNet\Utils\Container.cs: 在 SolrNet.Startup 的第 71 行D:\solrNet\SolrNet\Startup.cs 中的 .Init[T](IsolrConnection connection):D:\solrNet\EntryPoint\Program.cs 中 EntryPoint.Program.funa() 的第 98 行:EntryPoint.Program 的第 51 行。b__1() 在 D:\solrNet\EntryPoint\Program.cs:System.Threading.ExecutionContext.Run 的第 31 行 -
你能发布你的 Program.cs 或者至少是有问题的部分吗?