2013-09-04 28 views
30

Kiedy próbuje połączyć się z SQL Server za pomocą następującego kodułączenia się z SQL Server przy użyciu uwierzytelniania systemu Windows

 SqlConnection con = new SqlConnection("Server= localhost, Authentication=Windows Authentication, Database= employeedetails"); 
    con.Open(); 
    SqlCommand cmd; 
    string s = "delete employee where empid=103"; 

pojawia się następujący błąd:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)

+0

SQL nie jest skonfigurowany do umożliwienia połączeń zdalnych. – Greg

+0

jest na lokalnym hoście, niewiele o tym rozmawia. – ps2goat

+0

Dobra uwaga. Ciąg połączenia jest nieprawidłowy. – Greg

Odpowiedz

31

ciąg połączenia dla SQL Server powinien bardziej przypominają: "Server= localhost; Database= employeedetails; Integrated Security=True;"

Jeśli masz nazwane wystąpienie SQL Server, musisz dodać również, na przykład, "Server=localhost\sqlexpress"

+0

Logowanie nie powiodło się dla użytkownika 'IIS APPPOOL \ ASP.NET V4 .0 ". Opis: Wystąpił nieobsługiwany wyjątek podczas wykonywania bieżącego żądania WWW. Sprawdź ślad stosu, aby uzyskać więcej informacji o błędzie i skąd pochodzi w kodzie. Szczegóły wyjątku: System.Data.SqlClient.SqlException: Logowanie nie powiodło się dla użytkownika "IIS APPPOOL \ ASP.NET V4.0". Błąd Źródło: Linia 18: Linia 19 { : SqlConnection con = new SqlConnection ("server = localhost; Database = employeedetails; Integrated Security = True"); Linia 20: con.Open(); –

+0

Twoja nazwa użytkownika wygląda niepoprawnie. Twoja nazwa komputera to "IIS APPPOOL"? a twoja nazwa użytkownika to "ASP.NET V4.0"? Opublikuj swój ciąg połączenia z faktyczną nazwą użytkownika i hasłem zamienionym na "xxxx", aby zamaskować wartość. Pomożemy ci lepiej. – ps2goat

+0

Pula aplikacji witryny musi działać z konta, które zostało dodane jako login na serwerze SQL i ma pewne uprawnienia do bazy danych. Pula aplikacji w Ustawieniach zaawansowanych ma opcję "Tożsamość" - tutaj powinieneś podać swoje konto. Po tym połączenie z "Integrated Security = True" musi działać poprawnie. –

7

Zapoznaj się z www.connectionstrings.com dla ton próbek prawidłowych ciągów połączenia.

W twoim przypadku, użyj tego:

Server=localhost;Database=employeedetails;Integrated Security=SSPI 

Aktualizacja: oczywiście, konto usługi używane do uruchamiania aplikacji internetowych ASP.NET nie ma dostępu do SQL Server, a sądząc z tym komunikatem o błędzie prawdopodobnie używasz "anonimowego uwierzytelniania" na swojej stronie internetowej.

Musisz więc dodać to konto IIS APPPOOL\ASP.NET V4.0 jako login do serwera SQL i dać mu dostęp do bazy danych, lub musisz przełączyć się na "Windows authentication" w swojej witrynie ASP.NET, aby wywoływać Windows konto zostanie przekazane do SQL Server i użyte jako login na serwerze SQL.

+0

Logowanie nie powiodło się dla użytkownika "IIS APPPOOL \ ASP.NET V4.0". Opis: Wystąpił nieobsługiwany wyjątek podczas wykonywania bieżącego żądania WWW. Sprawdź ślad stosu, aby uzyskać więcej informacji o błędzie i skąd pochodzi w kodzie. Szczegóły wyjątku: System.Data.SqlClient.SqlException: Logowanie nie powiodło się dla użytkownika "IIS APPPOOL \ ASP.NET V4.0". Błąd źródła: Wiersz 18: {Wiersz 19: SqlConnection con = nowy SqlConnection ("Serwer = localhost, Database = employeedetails; Integrated Security = True"); Wiersz 20: con.Open() –

+0

Jeśli witryna korzysta z uwierzytelniania systemu Windows i 'Integrated Security = SSPI' znajduje się w connectionString, jak dokładnie chciałbyś przekazać konto Windows do serwera SQL? –

10

Twój ciąg połączenia jest źle

<connectionStrings> 
    <add name="ConnStringDb1" connectionString="Data Source=localhost\SQLSERVER;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
-3

użyć tego kodu

Data Source=.;Initial Catalog=master;Integrated Security=True 
0

Trzeba dodać connectionString wewnątrz pliku web.config jako

<connectionStrings> 
    <add name="ASPNETConnectionString" connectionString="Data Source=SONU\SA;Initial Catalog=ASPNET;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

następnie napisać swój SQL ciąg połączenia jak poniżej:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 


public partial class WebPages_database : System.Web.UI.Page 
{ 
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ASPNETConnectionString"].ToString()); 
    SqlDataAdapter da; 
    DataSet ds; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void btnAdmnNumber_Click(object sender, EventArgs e) 
    { 
     string qry = "select * from Table"; 
     da = new SqlDataAdapter(qry, con); 
     ds = new DataSet(); 
     da.Fill(ds); 

     GridView1.DataSource = ds; 
     GridView1.DataBind(); 
    } 
} 

Aby uzyskać więcej informacji kliknij ten link How To:Connect to SQl with windows Authentication

SQL Server with windows authentication

Powiązane problemy