2017-09-24 2 views
0

J'ai rencontré un problème lors du chargement du WebService dans IIS de mon serveur Cloud ce WebService pour vérifier le nom d'utilisateur et le mot de passe dans la base de données SQL du serveur SQL et retourner True ou False au format XML.C# WebService ne fonctionne pas dans IIS dans le serveur Cloud

Le code WebService:

public Result Login(string userName, string userPass) 
    { 
     SqlConnection conn = new SqlConnection(new DBConnection().ConnectionString); 

     Result result = new Result(); 

     try 
     { 
      SqlCommand cmd = new SqlCommand("select username,password from users where username = @username and password = @password"); 
      cmd.Parameters.AddWithValue("username", userName); 
      cmd.Parameters.AddWithValue("password", userPass); 
      cmd.Connection = conn; 

      if (conn.State == System.Data.ConnectionState.Closed) 
       conn.Open(); 
       SqlDataReader dr = cmd.ExecuteReader(); 

      if (dr.HasRows) 
      { 
       result.ValidUser = true; 
       return result; 
      } 
      else 
       result.ValidUser = false; 


     } 

     catch (Exception ex) 
     { 
      result.Error = ex.ToString(); 
     } 

     finally 
     { 
      conn.Close(); 

     } 

     return result; 
    } 
----------------------------------------------------------- 

Chaîne de connexion:

public string ConnectionString 
    { 
     get 
     { 
      return "Data Source=localhost;Integrated Security=True;Initial Catalog=test"; 

     } 
    } 

et j'échange localhost avec mon IP publique de mon serveur, mais ne fonctionne

c'est la une erreur de message apparaît lors de l'exécution

Erreur:

<Error> 

System.Data.SqlClient.SqlException (0x80131904): Une erreur liée au réseau ou spécifique à l'instance est survenue lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom d'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (fournisseur: fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server) ---> System.ComponentModel.Win32Exception (0x80004005): le système ne trouve pas le fichier spécifié dans System.Data.SqlClient.SqlInternalConnectionTds. ctor (identité de DbConnectionPoolIdentity, sqlConnectionString connectionOptions, SqlCredential informations d'identification, d'objets providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, sqlConnectionString userConnectionOptions, SessionData reconnectSessionData, piscine DbConnectionPool, String accessToken, Boolean applyTransientFaultHandling) à System.Data.SqlClient.SqlConnectionFactory.CreateConnection (DbConnectionOptions options, DbConnectionPoolKey poolKey, Objet poolGroupProviderInfo, pool DbConnectionPool, DbConnection owningConnection, DbConnectionOptions userOptions) à System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (pool DbConnectionPool, DbConnection owningObject, options DbConnectionOptions, DbConnec tionPoolKey poolKey, DbConnectionOptions userOptions) à System.Data.ProviderBase.DbConnectionPool.CreateObject (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) à System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) à System.Data .ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions UserOptions, connexion DbConnectionInternal &) à System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource une nouvelle tentative, DbConnectionOptions UserOptions, DbConnectionInternal oldConnection , DbConnectionInternal & connexion) à System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionIntern al (DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource 1 réessayer) à System.Data.SqlClient.SqlConnection.TryOpen (TaskCompletionSource`1 réessayer) à System.Data.SqlClient.SqlConnection.Open() à WebApplication.WebService.Connexion (String nomUtilisateur, String UserPass) ClientConnectionId: 00000000-0000-0000-0000-000000000000 Numéro d'erreur: 2, Etat: 0, Classe: 20


S'il vous plaît aidez-moi

Répondre

0

Pas Énoncer le évident, mais si vous obtenez le message ci-dessus, qui dit

"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"

les premières choses que vous voulez vérifier sont:

  1. L'adresse du serveur
  2. Le nom de l'instance de base de données
  3. La configuration de votre serveur SQL

Pour les 2 premiers points, vous voudrez peut-être essayer cette chaîne de connexion taper

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword; 

Pour la dernier point, suivez this link.

Remote connection configuration

+0

Salut ... Que voulez-vous dire bibliothèque réseau? –

+0

C'est juste une façon de spécifier que vous utilisez TCP/IP; c'est un "littéral", donc c'est corrigé et vous pouvez simplement le copier par dessus –

+0

ne fonctionne toujours pas. –