[Mono-aspnet-list] Caching and ASMX

Stuart Siegrist stuart at cbtnuggets.com
Fri May 29 14:25:42 EDT 2009


I have been searching through the forums and have not found the answer to
caching for ASMX web services.  Does Mono support the
[WebMethod(CacheDuration=60)] setting?  If so what configuration does it
require?  

When I search through the source code for Mono 2.4 it looks like the
attribute is never being used to set caching.  I noticed the OutputCache
setting seems to be implemented for pages but there doesn't seem to be a way
to leverage this same capability for web services.

Any help would be appreciated.  Below is my web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.extensions"
type="System.Web.Configuration.SystemWebExtensionsSectionGroup,
System.Web.Extensions, Version=3.5.0.0">
      <sectionGroup name="scripting"
type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions,
Version=3.5.0.0">
        <section name="scriptResourceHandler"
type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,
System.Web.Extensions, Version=3.5.0.0" requirePermission="false"
allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices"
type="System.Web.Configuration.ScriptingWebServicesSectionGroup,
System.Web.Extensions, Version=3.5.0.0">
          <section name="jsonSerialization"
type="System.Web.Configuration.ScriptingJsonSerializationSection,
System.Web.Extensions, Version=3.5.0.0" requirePermission="false"
allowDefinition="Everywhere"/>
          <section name="profileService"
type="System.Web.Configuration.ScriptingProfileServiceSection,
System.Web.Extensions, Version=3.5.0.0" requirePermission="false"
allowDefinition="MachineToApplication"/>
          <section name="authenticationService"
type="System.Web.Configuration.ScriptingAuthenticationServiceSection,
System.Web.Extensions, Version=3.5.0.0" requirePermission="false"
allowDefinition="MachineToApplication"/>
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>
  </configSections>
<system.web>
    <pages>
      <controls>
        <add tagPrefix="asp" namespace="System.Web.UI"
assembly="System.Web.Extensions, Version=3.5.0.0"/>
      </controls>
    </pages>
    <compilation debug="true">
      <assemblies>
        <add assembly="System.Web.Extensions, Version=3.5.0.0" />
      </assemblies>
    </compilation>
    <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"/>
      <add verb="*" path="*_AppService.axd" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" validate="false"
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions,
Version=3.5.0.0"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule,
System.Web.Extensions, Version=3.5.0.0"/>
    </httpModules>
    <customErrors mode="Off"/>
  </system.web>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
      <add name="ScriptModule" preCondition="integratedMode"
type="System.Web.Handlers.ScriptModule, System.Web.Extensions,
Version=3.5.0.0" />
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated" />
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx"
preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0" />
      <add name="ScriptHandlerFactoryAppServices" verb="*"
path="*_AppService.axd" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0" />
      <add name="ScriptResource" preCondition="integratedMode"
verb="GET,HEAD" path="ScriptResource.axd"
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions,
Version=3.5.0.0" />
    </handlers>
  </system.webServer>
</configuration>

Here is the TestService.asmx:

<%@ WebService Language="C#" Class="TestService" %>

And here is the source TestService.cs:
  using System;
  using System.Web;
  using System.Web.Services;
  using System.Web.Script.Services;
  using System.Web.UI;

  [WebService]
  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  [ScriptService]
  public class TestService : WebService {
    [WebMethod(CacheDuration=200,EnableSession=true)]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public String time() {
      return DateTime.Now.ToString();
    }
  }
-- 
View this message in context: http://www.nabble.com/Caching-and-ASMX-tp23784902p23784902.html
Sent from the Mono - ASP.NET mailing list archive at Nabble.com.



More information about the Mono-aspnet-list mailing list