vbscript から ASP.NET MVC にアップグレードするプロジェクトに参加しています。Microsoft Index Server を使用して、Windows Server 2003 マシン上の Word および PDF ファイルのインデックスを作成しました。「Provider=\"MSIDXS\";Data Source=\"docSearch\";」のような接続文字列を使用して、OleDbConnection を開いただけです。
少し調べたところ、Index Server は廃止されていることがわかりました ("Note Indexing Service is obsolete as of of Windows XP.その代わりに、Windows Search を使用してください。" - http://msdn.microsoft.com/en-us/library/ms690580 ) 。 Windows Search は後継です。
したがって、私の新しい MVC アプリでは、「Provider=Search.CollatorDSO;Extended Properties=\"Application=Windows\"」のような接続文字列で OleDbConnection を使用して接続しようとしています。
書式設定されたクエリを取り込んで検索を実行するメソッドがあります。OleDb を使用して実行されるクエリは次のとおりです。
string.Format("SELECT System.FileName FROM SystemIndex WHERE CONTAINS('{0}')", query)
これで、テスト クラスでメソッドを呼び出すと、正常に動作します (つまり、結果が返されます... myDataReader.HasRows は true です)。しかし、MVC コントローラーから同じメソッドを呼び出すと、同じクエリを使用して結果が返されません - myDataReader.HasRows は false です。私の推測では、アクセス許可と IIS がインデックスにアクセスできないことが関係しています。IIS がインデックスにアクセスできるようにするにはどうすればよいですか? インデックスを ASP.NET Web ページに公開するにはどうすればよいですか? Index Server が廃止され、この機能が Windows Search でサポートされていない場合、何を使用すればよいですか?