none
Conexão do Servidor Web com Servidor BD RRS feed

  • Discussão Geral

  • Prezados,

    Tenho uma aplicação webform, desenvolvida em C#, que está hospedada no servidor web UOL e que se conecta com um banco de dados que está em um servidor interno da empresa. Ocorre que estava funcionando tudo perfeitamente, porém, depois que atualizei o anti-vírus Norton 360, simplesmente a aplicação web parou de se comunicar com o BD.

    Já tentei desativar o firewall do Norton e do Windows, porém, a aplicação web continua a não se comunicar com o BD. Sendo assim, pergunto:

    - O que mais posso fazer para tentar reativar a comunicação entre a minha aplicação web com o BD ?

    segunda-feira, 14 de maio de 2012 13:22

Todas as Respostas

  • Prezados,

    Tenho uma aplicação webform, desenvolvida em C#, que está hospedada no servidor web UOL e que se conecta com um banco de dados que está em um servidor interno da empresa. Ocorre que estava funcionando tudo perfeitamente, porém, depois que atualizei o anti-vírus Norton 360, simplesmente a aplicação web parou de se comunicar com o BD.

    Já tentei desativar o firewall do Norton e do Windows, porém, a aplicação web continua a não se comunicar com o BD. Sendo assim, pergunto:

    - O que mais posso fazer para tentar reativar a comunicação entre a minha aplicação web com o BD ?

    Alguém consegue dar uma luz ?
    segunda-feira, 21 de maio de 2012 00:37
  • Complementando o post inicial, ao tentar se conectar ao BD pela minha aplicação, aparece a mensagem de erro abaixo. Alguma sugestão do que pode ser ?

    Server Error in '/' Application.

    Runtime Error

    Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
    sábado, 26 de maio de 2012 01:55
  • Amigo,

    Pelo jeito você não está utilizando TRY - CATCH na sua aplicação para ver os erros, então ative os erros no seu web.config.

    <system.web>
        <customErrors mode="Off">
        </customErrors> 
    </system.web>

    fonte: http://support.microsoft.com/kb/815166 

    Com isso você vai conseguir ver os detalhes do erro...vou te ajudar a resolver isso!

    Boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    sábado, 26 de maio de 2012 02:08
  • Amigo,

    Pelo jeito você não está utilizando TRY - CATCH na sua aplicação para ver os erros, então ative os erros no seu web.config.

    <system.web>
        <customErrors mode="Off">
        </customErrors> 
    </system.web>

    fonte: http://support.microsoft.com/kb/815166 

    Com isso você vai conseguir ver os detalhes do erro...vou te ajudar a resolver isso!

    Boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    OK, alterei e agora o erro aparece da seguinte forma:

    Server Error in '/' Application.

    Internal connection fatal error.

    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.InvalidOperationException: Internal connection fatal error.

    Source Error:
    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:
    [InvalidOperationException: Internal connection fatal error.]
       System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +5054386
       System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +35
       System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) +183
       System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) +164
       System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +195
       System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +232
       System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +185
       System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +33
       System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +524
       System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
       System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +479
       System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +108
       System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +126
       System.Data.SqlClient.SqlConnection.Open() +125
       System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +123
       System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) +166
       System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) +115
       BD.BancoDados.ExecutaSelect(String comandoSql) in C1_AcessoBD.cs:104
       C2_RegradeNegocio.curriculo.Consultar(String filtro) in RegradeNegocio.cs:168
       entrada.Consultar_Click(Object sender, EventArgs e) +581
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
    


    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

    sábado, 26 de maio de 2012 02:31
  • ok..ok!
    Infelizmente eu acabei esquecendo de perguntar no outro post, você consegue se conectar ao banco utilizando a própria ferramenta do SQL?
    Se o problema aconteceu após a atualização do antivírus, vamos acreditar que o problema é com ele, já tentou desativar o mesmo e ver se a aplicação volta a funcionar?

    Dei uma pesquisada sobre o Norton 360 e encontrei dois itens que podem estar causando o seu problema:

    1 - Proteção contra vulnerabilidades: Ele bloqueia brechas de segurança em aplicativos, protegendo seu computador contra invasões.
    2 - Firewall bi-direcional: Evita que hackers invadam seu computador e envie suas informações pessoais para outros computadores. (Acredito nesse!)

    Fonte: 

    Fazendo uma rápida pesquisa sobre "Norton 360 sql server", encontrei o seguinte link:

    http://community.norton.com/t5/Norton-360/SQL-Server/td-p/440948

    Possível solução

    1. Open Norton 360.
    2. Click on Settings.
    3. Go to Firewall Settings.
    4. Go to Traffic rules tab
    5. Click on the Add button.
     
    6. In the Add Rule wizard, select Allow, click Next.
    7. Select the type of connection that the rule should monitor, and then click Next.
    8. Select the computers that the rule should monitor, and then click Next.
    9. Select the protocols that the rule should monitor.
    10. Select the ports that the rule should monitor, and then click Next.
    11. If you want the logs for this rule to be saved, check Create an event log entry, and then click Next.
    12. In the "What do you want to call this rule?" box, type a name for the rule, and then click Next.
    13. Review the new rule settings, and if they are correct, click Finish.
    14. Click Move Up to move the rule to top, and make it a higher priority than default settings
    15. Click OK / Apply and close Settings.

    Bom dia e uma ótima semana!!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    segunda-feira, 28 de maio de 2012 14:16
  • ok..ok!
    Infelizmente eu acabei esquecendo de perguntar no outro post, você consegue se conectar ao banco utilizando a própria ferramenta do SQL?
    Se o problema aconteceu após a atualização do antivírus, vamos acreditar que o problema é com ele, já tentou desativar o mesmo e ver se a aplicação volta a funcionar?

    Dei uma pesquisada sobre o Norton 360 e encontrei dois itens que podem estar causando o seu problema:

    1 - Proteção contra vulnerabilidades: Ele bloqueia brechas de segurança em aplicativos, protegendo seu computador contra invasões.
    2 - Firewall bi-direcional: Evita que hackers invadam seu computador e envie suas informações pessoais para outros computadores. (Acredito nesse!)

    Fonte: 

    Fazendo uma rápida pesquisa sobre "Norton 360 sql server", encontrei o seguinte link:

    http://community.norton.com/t5/Norton-360/SQL-Server/td-p/440948

    Possível solução

    1. Open Norton 360.
    2. Click on Settings.
    3. Go to Firewall Settings.
    4. Go to Traffic rules tab
    5. Click on the Add button.
     
    6. In the Add Rule wizard, select Allow, click Next.
    7. Select the type of connection that the rule should monitor, and then click Next.
    8. Select the computers that the rule should monitor, and then click Next.
    9. Select the protocols that the rule should monitor.
    10. Select the ports that the rule should monitor, and then click Next.
    11. If you want the logs for this rule to be saved, check Create an event log entry, and then click Next.
    12. In the "What do you want to call this rule?" box, type a name for the rule, and then click Next.
    13. Review the new rule settings, and if they are correct, click Finish.
    14. Click Move Up to move the rule to top, and make it a higher priority than default settings
    15. Click OK / Apply and close Settings.

    Bom dia e uma ótima semana!!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    Lucas,

    Obrigado pelo retorno. Mas isso não solucionou o problema.

    Eu até fiz um teste, desinstalei o antivírus inteiririnho da máquina servidora do BD. Porém, o problema continua  a ocorrer.

    Com base na mensagem de erro da página, o que pode ser o problema ?

    segunda-feira, 28 de maio de 2012 17:58
  • Que coisa boa heim...kkk...vamos lá!
    Esse erro não é algo preciso, mas acabei encontrando um padrão...você está utilizando algum UNION na sua query?
    Poderia explicar um pouco sobre esse código que ele está executando?
    Da sua maquina você consegue se conectar no servidor sem problema e executar a mesma query?


    • Editado Lucas Vandor segunda-feira, 28 de maio de 2012 18:44
    segunda-feira, 28 de maio de 2012 18:43
  • Que coisa boa heim...kkk...vamos lá!
    Esse erro não é algo preciso, mas acabei encontrando um padrão...você está utilizando algum UNION na sua query?
    Poderia explicar um pouco sobre esse código que ele está executando?
    Da sua maquina você consegue se conectar no servidor sem problema e executar a mesma query?


    Então, quando eu coloquei o site no ar eu conseguia. Agora nem do VS de minha máquina não consigo mais.

    Cliquei no link de ajuda ao erro e me foi apresentada a seguinte mensagem:

    An InvalidOperationException exception is thrown when the failure to invoke a method is caused by a reason other than an invalid argument. This might be thrown by .NET Framework methods when the underlying Win32 method cannot be invoked.

    If you are using the Graphics object after the GetHdc method, call the ReleaseHdc method.

    This will release the context handle obtained by a previous call to the GetHdc method of the Graphics object.

    TableAdapters require valid UPDATE, INSERT, and DELETE commands to perform a successful save operation.

    TableAdapters generate INSERT, UPDATE, and DELETE statements based on the original SELECT statement entered into the wizard. In some situations, the SELECT statement does not provide enough information for the adapter to generate the commands that are required to create the INSERT, UPDATE, and DELETE commands required for a successful save. This often occurs when the database table does not have a primary key column, or the SELECT command uses JOINS. For more information, see How to: Edit TableAdapters.

    Pass a valid endpoint name to the service client constructor.

    When a Windows Communication Foundation (WCF) client has only one endpoint, there is no ambiguity and you do not have to list the endpoint as an argument. However, when two or more endpoints exist for the same contract type, you must specify which one the client uses. For example, defining a client as an instance of ServiceReference.ServiceSoapClient(), without an argument, raises this exception. You can resolve the problem by specifying a particular endpoint:

    Dim client As New ServiceReference.ServiceSoapClient("ServiceSoap")

    Similarly, this exception is raised if you provide an endpoint name that cannot be found. In this case, you must identify and provide a valid endpoint name.

    When you run your code in the Visual Studio debugger, an InvalidOperationException is thrown if you access a UI element from any thread other than the one on which it was created. The debugger does this to warn you about a dangerous programming practice. UI elements are not thread-safe and should be accessed only on the thread that created them. For more information, see Threading (C# and Visual Basic).

    If the method invocation failure is caused by an invalid argument or arguments, ArgumentException or one of its derived classes, ArgumentNullException or ArgumentOutOfRangeException, should be thrown instead.

    For 64 bit development with Visual Studio and SQL Server Compact 3.5, the Target CPU option in the Advanced Compiler Settings must be explicitly set to x86. When the Target CPU is set to the default value of Any CPU, you might receive an "Unable to load sqlceme35.dll" message. Set the Target CPU option in the Advanced Compiler Settings in project properties.

    terça-feira, 29 de maio de 2012 00:02
  • Amigo,

    Pelo jeito você está com sua sorte lá em baixo...o bom é que a gente sabe que o problema está no SQL Server, isso a gente não pode negar.
    Não altere nada na sua aplicação pois o risco de acabar prejudicando algo que está funcionando é grande. Se você tem o web plataform da microsoft na sua maquina baixe o SQL Management Studio, isso vai agilizar o processo de teste de conexão. Se for possível reinicie o servidor e verifique se o usuário e senha que você está utilizando está ativo no servidor.

    Achei alguns links que podem te ajudar:
    http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/ 
    http://stackoverflow.com/questions/2388042/connect-to-sql-server-2008-with-tcp-ip 
    http://msdn.microsoft.com/en-us/library/bb909712(v=vs.90).aspx 
    http://social.msdn.microsoft.com/Forums/en/sqlexpress/thread/97a0ddf7-d23e-4723-b49f-463943180172 
    http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/ 
    http://www.dbforums.com/microsoft-sql-server/1645707-sqlexpress-2008-connection-problems-setup.html

    A gente vai resolver isso por bem ou por mal!!

    Boa sorte e bom dia!!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    terça-feira, 29 de maio de 2012 13:33