HttpHandler issues when deploying from Win7 dev environment to Win 2003 server?

Thread is closed for posting
4 posts, 0 answers
  1. James
    James avatar
    53 posts
    Member since:
    Jun 2009

    Posted 15 Oct 2009 Link to this post

    RadChart will not display after deploying compiled code to my staging server, but runs fine on my local development environment.

    Dev environment is Win7 64bit, iis7 in integrated mode.

    Staging is Windows 2003 server 64 bit.

    Http handlers look like this:
    in system.web:
    <add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" validate="false"/> 

    in system.webserver:
    <add name="ChartImage_axd" verb="*" preCondition="integratedMode" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler"/> 

    Any help on getting this working on the 2003 server would be much appreciated!!
  2. Giuseppe
    Admin
    Giuseppe avatar
    2363 posts

    Posted 21 Oct 2009 Link to this post

    Hi James,

    Unfortunately we are unable to reproduce the problem in our local tests and we have not received reports for similar problems so far. Actually usually we receive inquiries for quite the opposite scenario -- the control works in Windows 2003 development environment but does not display on the Windows Vista /Windows 7 production machine as additional configuration should be added for IIS7 under the "system.webServer" section in the web.config.

    That said, your http handler declaration looks OK but could send us the whole web.config so we can review it and try to figure out what might be the problem here? Also, could you verify you are able to access the ChartImage.axd handler in the root of your website (just load http://server-name/website-name/ChartImage.axd in the browser) and what is the exception if you cannot (if you cannot access it, please check the website permissions as well).


    Best wishes,
    Manuel
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
  3. James
    James avatar
    53 posts
    Member since:
    Jun 2009

    Posted 21 Oct 2009 Link to this post

    Manuel,

    Thank you for your response.

    Just to clarify, I am developing on Win7 64bit, and I am compiling and deploying to a Server 2003 staging environment.

    When I access the path directly (http://vdev_web/SalesManagement/ChartImage.axd) I get the following exception:

    Value cannot be null.
    Parameter name: InString

    Description:An unhandled exception occurred during the execution of the current webrequest. Please review the stack trace for more information about the error andwhere it originated in the code.

    Exception Details:System.ArgumentNullException: Value cannot be null.
    Parameter name:InString

    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:

    [ArgumentNullException: Value cannot be null.Parameter name: InString]   System.Convert.FromBase64String(String s) +0   Telerik.Web.UI.ChartHttpHandler.UngarbleImagePath(String garbledPath) +7   Telerik.Web.UI.ChartHttpHandler.ProcessRequest(HttpContext context) +745   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75


    Version Information: Microsoft .NET Framework Version:2.0.50727.3053;ASP.NET Version:2.0.50727.3053 


    My web.config is as follows:
    <?xml version="1.0"?><configuration> 
      <configSections> 
        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
          <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
              <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/> 
              <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
              <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
              <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
            </sectionGroup> 
          </sectionGroup> 
        </sectionGroup> 
      </configSections> 
      <connectionStrings> 
        <add name="DevelopmentCacheConnectionString" connectionString="Server = XXX; Port=XXX; Namespace = MARCOMV; Password = XXXXX; USER ID = XXXXX;"/> 
      </connectionStrings> 
      <appSettings> 
        <add key="DefaultConnectionString" value="DevelopmentCacheConnectionString"/> 
        <add key="LogPath" value="c:\logs\"/> 
        <add key="debug" value="false"/> 
      </appSettings> 
      <system.web> 
          <customErrors mode="Off"/> 
          <compilation debug="true"
          <assemblies> 
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
            <add assembly="System.Data.DataSetExtensions, 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.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
            <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
            <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
            <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
            <add assembly="System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
          </assemblies> 
        </compilation> 
        <authentication mode="Windows"/> 
        <roleManager enabled="true" defaultProvider="ActiveDirRP"
          <providers> 
            <clear/> 
            <add applicationName="Marco" name="ActiveDirRP" type="FoundationWindowsSecurityClassLibrary.Security.ADRoleProvider" activeDirectoryConnectionString="ADRPConnectionString" groupMode="Subtractive" enableSqlCache="False"/> 
          </providers> 
        </roleManager> 
        <authorization> 
          <deny users="?"/> 
        </authorization> 
        <!-- pages area sets up some important applications coped stuff  
            <pages>--> 
        <pages theme="MarcoIntranetApplication"
          <controls> 
            <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
            <add tagPrefix="aspAjax" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.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"/> 
            <add tagPrefix="telerik" namespace="Telerik.Web.UI" assembly="Telerik.Web.UI"/> 
          </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"/> 
          <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false"/> 
          <add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" 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> 
      </system.web> 
      <system.codedom> 
        <compilers> 
          <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            <providerOption name="CompilerVersion" value="v3.5"/> 
            <providerOption name="WarnAsError" value="false"/> 
          </compiler> 
        </compilers> 
      </system.codedom> 
      <!--  
            The system.webServer section is required for running ASP.NET AJAX under Internet 
            Information Services 7.0.  It is not necessary for previous version of IIS. 
        --> 
      <system.webServer> 
        <validation validateIntegratedModeConfiguration="false"/> 
        <modules> 
          <remove name="ScriptModule"/> 
          <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
        </modules> 
        <handlers> 
          <remove name="WebServiceHandlerFactory-Integrated"/> 
          <remove name="ScriptHandlerFactory"/> 
          <remove name="ScriptHandlerFactoryAppServices"/> 
          <remove name="ScriptResource"/> 
          <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
          <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
          <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
          <add name="Telerik_Web_UI_WebResource_axd" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource"/> 
          <add name="ChartImage_axd" verb="*" preCondition="integratedMode" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler"/> 
        </handlers> 
      </system.webServer> 
      <runtime> 
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
          <dependentAssembly> 
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/> 
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
          </dependentAssembly> 
          <dependentAssembly> 
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/> 
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
          </dependentAssembly> 
        </assemblyBinding> 
      </runtime> 
    </configuration> 

  4. Giuseppe
    Admin
    Giuseppe avatar
    2363 posts

    Posted 23 Oct 2009 Link to this post

    Hello James,

    Unfortunately we were unable to spot anything suspicious in the web.config file, moreover, it seems the chart http handler is correctly registered as the exception you are receiving is the expected one when the handler is requested without any arguments.

    • Do you by any chance have a webfarm environment on your staging server?
    • Do the staging server has any custom session settings (RadChart generally requires SessionState in order to work correctly). You can also try setting the RadChart.UseSession to false to see whether this will have any effect (you will also need to set the RadChart.TempImagesFolder property).
    • Do you observe the same behavior when trying to deploy rather basic charting project on the server (see attached one).

    We are sorry we cannot be of much help here but this is rather odd situation and we are a bit puzzled as well.

    Kind regards,
    Manuel
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Back to Top