Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

prompt

[Resolvido] Erro de Conexão com o SqlServer ao implementar Profil

Recommended Posts

Fala galera, tudo legal?

 

Seguinte, acabei de implementar o esquema de Profile do VS no meu projeto C#. Aqui na minha máquina roda redondinho, sem problema nenhum, mas quando publiquei na Locaweb me deparei com o seguinte erro:

 

Obs: tenho um Banco de dados SqlServer separado que é o principal do sistema, e o VS criou, imagino eu que pra rolar o esquema do Profile, o arquivo "ASPNETDB.MDF"(fica dentro da App_Data), que imagino ser o responsável por esse erro. O Acesso ao SqlServer principal está funcionando perfeitamente, só o deste arquivo que não sei o que fazer..

 

 

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: 26 - Error Locating Server/Instance Specified)

 

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.SqlClient.SqlException: 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: 26 - Error Locating Server/Instance Specified)

 

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:

[sqlException (0x80131904): 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: 26 - Error Locating Server/Instance Specified)]

System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4846887

System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194

System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject) +4860189

System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +90

System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +376

System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +221

System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +189

System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +4861315

System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +31

System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +433

System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66

System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +499

System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65

System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117

System.Data.SqlClient.SqlConnection.Open() +122

System.Web.DataAccess.SqlConnectionHolder.Open(HttpContext context, Boolean revertImpersonate) +87

System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation) +221

System.Web.Profile.SqlProfileProvider.GetPropertyValuesFromDatabase(String userName, SettingsPropertyValueCollection svc) +772

System.Web.Profile.SqlProfileProvider.GetPropertyValues(SettingsContext sc, SettingsPropertyCollection properties) +433

System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider provider) +258

System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName) +132

System.Configuration.SettingsBase.get_Item(String propertyName) +102

System.Web.Profile.ProfileBase.GetInternal(String propertyName) +36

System.Web.Profile.ProfileBase.get_Item(String propertyName) +68

System.Web.Profile.ProfileBase.GetPropertyValue(String propertyName) +7

ProfileCommon.get_IDusuarioLogado() +11

MasterPage.Page_Load(Object sender, EventArgs e) +49

System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14

System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35

System.Web.UI.Control.OnLoad(EventArgs e) +99

System.Web.UI.Control.LoadRecursive() +50

System.Web.UI.Control.LoadRecursive() +141

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

 

 

 

Um detalhe importante é o fato desse erro aparecer apenas depois de ter logado no sistema, ou seja, faço o login pelo meu banco SqlServer normalmente, mas imagino que quando ele vai usar alguma informação que está no "ASPNETDB.MDF" que o VS criou, ele retorne esse erro(o Profile nesse caso).

 

Alguém pode me dar uma luz por favor do que pode estar acontecendo?

 

Agradeço muito galera.

 

Abraços a todos,

Prompt

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai propt beleza cara.

 

Cara o erro é isso mesmo eles não esta encontrando o banco de dados..

Agora eu queria saber pq você não adicionou o profile dentro do banco atual sem usar esse aspnetdb?

Posta ai como ta string de conexão com aspnetdb!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai propt beleza cara.

 

Cara o erro é isso mesmo eles não esta encontrando o banco de dados..

Agora eu queria saber pq você não adicionou o profile dentro do banco atual sem usar esse aspnetdb?

Posta ai como ta string de conexão com aspnetdb!

 

Fala Jivandf, tranquilo?

 

Pois é rapaz, eu não sei como fazer usar este esquema de Profile no meu BD já criado..

Para implementar no meu sistema eu simplesmente coloquei as seguintes tags no meu Web.Config: (eu tb implementei o esquema de Autenticação automático dele, sendo que ele controla o timeOut e o redirecionamento automático das páginas se o usuário não estiver logado)

 

<location path="Login2.aspx">
	<system.web>
		<authorization>
			<allow users="*"/>
		</authorization>
	</system.web>
</location>
<location path="LembrarSenha.aspx">
	<system.web>
		<authorization>
			<allow users="*"/>
		</authorization>
	</system.web>
</location>
<system.web>
	<anonymousIdentification enabled="true" />
	<profile enabled="true">
		<properties>
			<add name="IDusuarioLogado" type="int" allowAnonymous="true" />
			<add name="NomeUsuarioLogado" type="string" allowAnonymous="true" />
			<add name="GrupoAcessoUsuarioLogado"  type="string" allowAnonymous="true" />
		</properties>
	</profile>
	<authentication mode="Forms">
		<forms name="TRIUNFO" defaultUrl="Home.aspx" loginUrl="Login.aspx"  timeout="60000" />
	</authentication>
	<authorization>
		<deny users="?"/>
	</authorization>
</system.web>

Somente com isso ele já criou o "ASPNETDB.MDF" dentro de App_Data e habilitou o as propriedades do Profile na minha aplicação..

 

Como faço então para migrar este esquema pronto para meu SqlServer já existente?

Da também para migrar o esquema de redirecionamento e validação que implementei para meu SqlServer?

Isso seria excepcional cara!!

 

Abração e obrigado.

Prompt.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra implantar em seu bd atual você tera q executar "aspnet_regsql";

Da uma lida em http://www.linhadecodigo.com.br/Artigo.aspx?id=751, ver se você consegue!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra implantar em seu bd atual você tera q executar "aspnet_regsql";

Da uma lida em http://www.linhadecodigo.com.br/Artigo.aspx?id=751, ver se você consegue!

 

Obrigado pela ajuda jivandif.

 

Estou tentando implementar do jeito do tutorial que me passou acima cara, mas não estou conseguindo fazer com que o web.config aceite o parâmetro:

<providers>

<add name="SQLProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="CNProfiles" />

</providers>

 

Ele diz "Seção de configuração não reconhecida system.web/providers."..

Não sei onde tenho que colocar esse <providers> para o VS 2005 aceitar..

 

 

Segue abaixo como meu webconfig está depois das mudanças do link:

<system.web>
	<anonymousIdentification enabled="true" />
	<authentication mode="Forms">
		<forms name="TRIUNFO" defaultUrl="Home.aspx" loginUrl="Login.aspx"  timeout="60000" />
	</authentication>
	<authorization>
		<deny users="?"/>
	</authorization>
	<profile defaultProvider="SQLProvider" />
	<providers>
		<add name="SQLProvider"	type="System.Web.Profile.SqlProfileProvider" connectionStringName="ConnectionString" />
	</providers>
		<profile>
		<properties>
			<add name="IDusuarioLogado" type="int" defaultValue="" allowAnonymous="true" />
			<add name="NomeUsuarioLogado" type="string" defaultValue="" allowAnonymous="true" />
			<add name="GrupoAcessoUsuarioLogado" type="string" defaultValue="" allowAnonymous="true" />
		</properties>
	</profile>
	<compilation debug="true">
		<assemblies>
			<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
			<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
			<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
		</assemblies>
	</compilation>
	<pages>
		<controls>
			<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
		</controls>
	</pages>
	<httpHandlers>
		<remove verb="*" path="*.asmx"/>
		<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
		<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
		<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
	</httpHandlers>
	<httpModules>
		<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
	</httpModules>
	<customErrors mode="Off"/>
</system.web>

Abraços,

Prompt

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai galera, consegui resolver.. sinceramente... não sei como.. rs

 

Mas segue o que eu fiz:

 

1- Peguei coloquei a propriedade providerName="System.Data.SqlClient", na tag <Add> da minha <connectionStrings>, desta forma:

    <add name="CNProfiles" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

2- Depois copiei todo o conteudo que tinha dentro da tag <system.web> e colei no Notepad;

 

3- Substitui a minha tag <system.web> inteira por esta que segue abaixo, pois encontrei um tópico falando que esta config é a configuração ideal para configurar o Profine no web.config. (confirmei pessoal: realmente está bem enxuta e certa.)

 

<system.web>
   <authentication mode="Forms">
      <forms name=".ASPXAUTH" loginUrl="Default.aspx" timeout="30" protection="All"/>
   </authentication>
   <authorization>
      <allow users="?"/>
   </authorization>
   <anonymousIdentification enabled="true"/>
       <profile defaultProvider="SQLProvider">
          <providers>
             <add name="SQLProvider"
                     type="System.Web.Profile.SqlProfileProvider"
                     connectionStringName="CNProfiles" />
          </providers>
          <properties>
               <add name="CAMPO_1" type="System.String" allowAnonymous="true"/>
               <add name="CAMPO_2" type="System.String" allowAnonymous="true"/>
          </properties>
       </profile>
       <customErrors mode="Off"></customErrors>
    </system.web>

4- Feito isso então comecei a substituir de trecho em trecho o código desta <system.web> pelo meu (que havia colado no Notepad), prestando a atenção nas configs que estão neste e comparando com o meu.. Não tive que efetuar alteração nenhuma além de fazer isso, e resolveu.

 

Sei lá, imagino que seja uma ordem dos fatores ou algo do tipo para ter funcionado agora e não antes.

 

Bom, fica ai a dica.

Espero que ajude a todos ok?

 

Grande abraço e outra vez, obrigado a todos.

Prompt

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.