AJAX control toolkit en ASP.NET

Iniciado por Sauruxum, 24 Diciembre 2010, 00:05 AM

0 Miembros y 1 Visitante están viendo este tema.

Sauruxum

Saludos.
Desde esta mañana que le estoy dando al ASP.NET con una especie de curso/tutorial que encontre en msdn. En este momento he llegado al punto de usar los controles AJAX, para lo cual he descargado e instalado sin inconvenientes el "ajax control toolkit".
Cuando hago los proyectos con visual web developer y pruebo la aplicacion en debug me funciona todo, sin embargo cuando lo publico en el servidor que tengo localmente los controles o no se muestran o no funcionan. Personalmente pienso que el problema es de configuracion del IIS ( por lo cual me disculpo si el post no va en esta sección ), pero he leido por ahi que puede ser tambien problema del web.config, pero lo dudo ya que sino en debug no se mostraria la pagina.
Por eso me preguntaba si debo habilitar alguna opcion en el IIS para poder mostrar estos controles ( el cual tambien me tarde un poco de tiempo en habilitar correctamente el .NET 4.0  y cosa que lo estoy usando desde hoy y no me entero mucho :xD ).
Los ejemplos en especifico que estoy probando son los que estan a disposicion en la pagina donde descargue el toolkit, por eso dudo que sea error de codigo ( ademas que repito que no funcionaria en debug si fuera esa la causa )

Saludos

[D4N93R]

Hola,

1) Te sale algún tipo de error, o simplemente no se muestran?
2) Cuando subiste el proyecto al servidor, llevaste también el DLL del toolkit?
3) Recuerda siempre postear versiones de todo lo que usas.

Saludos!

Sauruxum

#2
Simplemente no se muestran los controles, nada de errores como los muestra por lo general IIS y el proyecto lo hice en modo que los binarios y todo quede dentro de la carpeta del ISS 7, ese que viene integrado con Win 7 ( especifico, ya que se me paso y es relevante ), de modo que solo compilo y lo miro desde el navegador poniendo localhost ( el servidor en mi pc, si podeis ver mi ip, el proyecto esta en /ajaxcontrol.aspx y podreis comprobar que es lo que se ve, no mirar otras paginas, mientras aprendo uso un lenguaje grosero  :xD ).
Como dije antes, uso .NET 4 y estoy usando ASP.NET con C#. Trato de usar binarios y todo que sean compatibles con .NET 4
La cosa es que cuando le doy a la flechita verde de debug si funcionan con el servidor de prueba del visual web developer, mientras que con el IIS 7 nada.

EDITO:
Por simple curiosidad me puse a ver mi pagina con IE y cuando le doy click al boton que ejecuta la accion programada en AJAX me sale en la parte inferior que hay errores en la pagina que pueden provocar el mal funcionamiento. El error que sale es el siguiente:

ASP.NET Ajax client-side framework failed to load

Yo hoy no duermo hasta que encuentro la solucion, ya esto pienso que es una pista.

Saludos

[D4N93R]

#3
Puedes postear tu web.config, estoy casi casi seguro que ahí está el problema.!

EDIT:
Sí, estuve googleando un poco, porque ese error nunca lo había visto, y bueno, encontré lo siguiente en un blog:
CitarIf you're trying to use ASP.NET AJAX features (like Script Manager or Update Panel) in your ASP.NET 3.x website and getting "ASP.NET AJAX client-side framework failed to load" error, chances are your Web.config file is missing required sections. Fastest way to correct this is to create a new ASP.NET website in Visual Studio (you can delete it afterwards) and copy missing sections from the new web.config to the one in your web site.

Haz eso a ver que tal.

Saludos!

Sauruxum

#4
Acabo de probar agregando las partes del web.config que faltaban, quedando finalmente asi:

<?xml version="1.0"?>
<!--
 Para obtener más información sobre cómo configurar la aplicación de ASP.NET, visite
 http://go.microsoft.com/fwlink/?LinkId=169433
 -->
<configuration>
 <connectionStrings>
   <add name="SQLconnect" connectionString="Data Source=NO_PUEDES _SABER_ESTO;Initial Catalog=NI_ESTO;User ID=Y_ESTO_MUCHO_MENOS_XD" providerName="System.Data.SqlClient"/>
   <add name="databaseConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\database.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
 </connectionStrings>
 <system.web>
   <authentication mode="Forms">
     <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
   </authentication>
   <compilation debug="false" targetFramework="4.0">
     <assemblies>
       <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
       <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
       <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
       <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
     </assemblies>
   </compilation>
   <membership>
     <providers>
       <clear/>
       <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
            enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
            maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
            applicationName="/" />
     </providers>
   </membership>

   <profile>
     <providers>
       <clear/>
       <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
     </providers>
   </profile>

   <roleManager enabled="false">
     <providers>
       <clear/>
       <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
       <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
     </providers>
   </roleManager>
 </system.web>
 <system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/>
 </system.webServer>
</configuration>


Y aun daba el error anteriormente citado. He probado a agregar al toolkitSciptManager lo siguiente:

EnableHistory="true" EnablePartialRendering="true" EnablePageMethods="true"

Eliminando el error anterior, solo que ahora el error es 'Sys' is undefined

Por ahi desde esta madrugada vengo leyendo que es problema del web.config, solo que aun no entiendo que es lo que va ahi y ya he incluso usado algunos metodos que proponen, con el unico resultado de invalidar la pagina.
Tambien he visto algo de habilitar una extension ( en algunos lados veo .adx en otros .axd, no se cual es la correcta  :xD ) pero no entiendo como hacer, ya que aun no me guio bien en el IIS manager.

Yo sigo probando igual, cualquier sugerencia es bienvenida y agradecida.

Saludos

EDITO:

Golpe de suerte! de "pura nota" como decimos mi familia :xD he agregado una parte al web.config, en especifico:

Citar<system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/>
   <handlers>
     <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
   </handlers>

 </system.webServer>

Y el ejemplo con el que he empezado ya funciona, ahora solo falta testearlo en su totalidad.

Muchas gracias por la ayuda, y si queda aun algo que saber pues igual le puede servir a alguno en futuro.

Saludos

[D4N93R]

Que bueno que pudiste solucionar, viste! como te dije, era algo en el webconfig.

Oye, ultima cosa, crea un proyecto nuevo con extensiones de ajax, y pruébalas, si falla, es que el toolkit o las extensiones están mal. Reinstálalo.

De todos modos te digo que Visual Studio 2010 viene con Ajax integrado y solo tendrías que instalar el toolkit que no viene.

Saludos!