私はいくつかのデータを取得し、クエリに使用して、Solrで検索し、適切な結果を返すWebサービスを開発しています!それが正常に動作しますが、私はそれが一度だけこれまでのところ、私はこれを持っているのSolrを初期化する必要があります。WebサービスでSolr接続を認証する
private static bool initialized = false;
[WebMethod]
public XmlDocument getContributor(string name,string email)
{
if (!initialized)
{
Startup.Init<SolrSearchResult>("http://Host:44416/solr");
initialized = true;
}
if (string.IsNullOrEmpty(email))
{
return SolrSearchResult.SearchData(name);
}
return SolrSearchResult.SearchDataWithEmail(name, email);
}
しかし、私は、複数のユーザーが使用しているときだと思う、それは動作しません!私はそれを修正するためにスマートな方法が必要です!私はどんな提案もありがとう!
P.S:SampleSolrAppを見ました。そこにはstartup.initがApplication_Startで使用されていますが、私はここで同等のものが何か分かりません。
あなたの質問が並行性に関するものであれば、 'Init'への呼び出しの同期を考慮する必要があります。あなたは単純な 'ロック 'を使ってこれを行うことができます。 – Biscuits
@ビスケットすみませんが、もう少し説明できますか?私はこれでまったく新しい! – saeedeh