IIS.

2010-06-30 27 views
5

üzerinde dağıtıldığında ASP.NET OLEDB kodu kesiliyor, Windows Search'ü arayacak, belirli bir dosyayı bulup kullanıcıya döndürecek basit bir web sitesi (ASP.NET v4) yazmaya çalışıyorum. Ben örnek olarak aşağıdaki araya getirdik: o "RemoteServer" Windows Search hizmetini çağırır ve "somefile.txt" yolunu döndürür:IIS.

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(); 

.. ve bu Visual Studio 2010 inşaat büyük geliştirme ortamı, "sonuç" dosyasının yolunu içerir. Gelecek gitmek için bir kayıp am

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. 

: Yerel IIS7 sunucusunda (Server 2008 üzerinde çalışan) bunu dağıtmak Ancak, bu hatayı alıyorum. Çalışmak için IIS7'ye, kodlara veya her ikisine birden ne yapmam gerekiyor? Yine, bu VS2010 (Windows 7 ve Windows 2008 Server'da test edilmiştir) içinde iyi çalışır.

+0

*** sytelhp.systemindex *** nedir? – Kiquenet

+0

Kod çalıştıran sunucunun adıydı. Bu 6 yıl önceydi :) – KenD

cevap

3

Vista veya daha eski işletim sistemlerinde çalışıyorsunuz ve IIS 2008 Server veya daha yeni sürümlerde çalışıyor mu? Provider=Search.CollatorDSO.1'u deneyin (.1 numaralı telefonu unutmayın).

Düzenle: Aramanın çalışması için farklı bir kullanıcı hesabı kullanmalısınız (asp.net uygulaması altında çalışan varsayılan "ağ hizmeti" değil). Daha fazla bilgi için yorumlara bakın.

+0

Visual Studio 2010'da hem Windows 7 hem de Server 2008 üzerinde çalışan kodu çalıştırmayı denedim ve her ikisine de iyi çalışıyor. Sadece Server 2008 üzerinde IIS'ye devredilirken düşüyor. Sağlayıcı dizesini değiştirmeyi denedim (teşekkürler), ancak yine de "parametre hatalı" hatası veriyor :( – KenD

+0

Sağlayıcı = RSSearch.CollatorDSO.1; Gelişmiş Özellikler = "Uygulama = RSApp" Çalışmıyorsa, o zaman bir kullanıcı profili (bir web uygulaması için garip bir çözüm IMHO olurdu) olmayan IIS kullanıcı (app çalıştıran) bir sorun olabilir.Talep hesap bir ağ servis hesabıdır –

+0

Tabii ki! kodun altında çalıştığı sorun bu. Bir kullanıcının kimliğine bürünmek için bir kod ekledim ve şu anda iyi çalışan bir etki alanı yöneticisi hesabı kullandım.Örneğin, kodun bir etki alanı yöneticisi olarak çalışmasını istemiyorum. Hesabın, uzak Windows Arama veritabanına erişmeye ihtiyacı olduğu için hangi izinleri veya ayrıcalıkları yapar? – KenD