5

Windows Search を呼び出し、特定のファイルを見つけてユーザーに返す単純な Web サイト (ASP.NET v4) を作成しようとしています。例として次のようにまとめました。「remoteserver」で Windows Search サービスを呼び出し、「somefile.txt」のパスを返します。

OleDbConnection conn = new OleDbConnection();

conn.ConnectionString = "Provider=Search.CollatorDSO;Extended Properties='Application=Windows';";

OleDbCommand cmd = conn.CreateCommand();


cmd.CommandText = string.Format(
            "SELECT System.ItemPathDisplay, System.ItemType FROM " +
            " sytelhp.systemindex WHERE SCOPE='file://remoteserver/archive' AND CONTAINS(\"System.FileName\", " +
            " '\"*{0}*\"')", "somefile.txt");


conn.Open();

OleDbDataReader rdr = cmd.ExecuteReader();

string result=rdr[0].ToString();

..これはVisual Studio 2010開発環境でうまく機能し、「結果」にはファイルへのパスが含まれています。ただし、ローカルの IIS7 サーバー (サーバー 2008 で実行) に展開すると、次のエラーが発生します。

The parameter is incorrect. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.OleDb.OleDbException: The parameter is incorrect.

次はどこに行こうか迷っています。IIS7、コード、またはその両方を機能させるには、何をする必要がありますか? 繰り返しますが、これは VS2010 内で正常に動作します (Windows 7 と Windows 2008 Server の両方でテスト済み)。

4

1 に答える 1

3

Vista またはそれ以前の OS で実行しており、IIS は 2008 Server 以降で実行されていると思いますか? 試してください( .1Provider=Search.CollatorDSO.1に注意してください)。

編集:検索が機能するには、別のユーザーアカウントを使用する必要があります(asp.netアプリが実行されるデフォルトの「ネットワークサービス」ではありません)。詳細については、コメントを参照してください。

于 2010-06-30T17:16:51.530 に答える