意到它,不过,了解这些配置,对于用好 ASP.NET AJAX 也是必不可少的。
在此仅对所有的配置元素进行了简要的介绍,在以后的使用中再详细对他们进行说明。
在新的 Web 站点中使用 ASP.NET AJAX Web 配置文件
当创建一个新的 ASP.NET AJAX Web 站点时,可以使用提供在安装包中的 Web.config 文件来添加配置设置。在 Visual Studio 中,用于 Microsoft ASP.NET AJAX 的 Web.config 文件在创建新的 “ASP.NET AJAX-enabled Web Site”时就已经包含在项目中。
如果要手工添加一个 Web.config 到新建的 Web 站点中,可以从安装目录获取它的一个副本,将它复制到站点的根目录下即可。默认情况下,该文件被放在下列位置:
驱动器:"Program Files"Microsoft ASP.NET"ASP.NET 2.0 AJAX Extensions"v1.0.nnnn
添加 ASP.NET AJAX 配置元素到已存在的 Web 站点中
对于一个已存在的站点,通常有一些值是要保留的,在这种情况下,就可以添加新的 ASP.NET AJAX 配置元素到已存在的 Web.config中去。
新的元素是下列配置节的组成部分:
- <configSections>元素
- <controls>元素
- <assemblies>元素
- <httpHandlers>元素
- <httpModules>元素
- <system.web.extensions>元素
- <system.webserver>元素
<configSections>元素
<configSections>元素创建了用于 SystemWebExtensionsSectionGroup 类的配置节和子配置节,可以为<system.web.extensions>元素中的这些节设置属性。
下列示例展示了用于 ASP.NET AJAX 的元素,可以将它添加到已存在的 Web.config 文件中做为<configuration>元素的子元素。更详细的信息,请参见 4.2.6 <system.web.extensions>元素。
<configuration> <configSections> <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" /> <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /> </sectionGroup> </sectionGroup> </sectionGroup> </configSections> </configuration>
<controls>元素
<controls>元素注册了在 System.Web.Extensions 程序集中的 ASP.NET AJAX 命名空间,并为这些命名空间映射 asp 标记前缀别名。在ASP.NET AJAX 命名空间中的控件可以用以下形式在 Web 页面中使用:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
下列示例展示了用于 ASP.NET AJAX 的<controls>元素,可以将此节添加到已存在的 Web.config 文件中做为<system.web><pages>元素的一个子元素:
<system.web> <pages> <controls> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </controls> </pages> </system.web>
<assemblies>元素
<assemblies>元素注册 System.Web.Extensions 程序集。
下例示例展示了用于 ASP.NET AJAX 的<assemblies>元素,可以将此节添加到已存在的 Web.config 文件中做为<system.web><compilation>元素的一个子元素:
<system.web> <compilation> <assemblies> <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </assemblies> </compilation> </system.web>
如果要调试该程序集,可以添加 的属性 debug="true" 。
<httpHandlers>元素
<httpHandlers>元素添加用于脚本请求的新的处理程序。
下例示例展示了用于 ASP.NET AJAX 的<httpHandlers>元素,可以将此节添加到已存在的 Web.config 文件中做为<system.web>元素的一个子元素:
<system.web> <httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> </httpHandlers> </system.web>
<httpModules> 元素
<httpModules> 元素定义在 ASP.NET AJAX 中使用的 HTTP 模块。
下例示例展示了用于 ASP.NET AJAX 的<httpModules> 元素,可以将此节添加到已存在的 Web.config 文件中做为<system.web>元素的一个子元素:
<system.web> <httpModules> <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </httpModules> </system.web>
<system.web.extensions>元素
<system.web.extensions>元素提供了配置如何调用 Microsoft ASP.NET AJAX 应用程序中的 Web 服务的元素。<jsonSerialization>元素指定定制类型的转换器以覆盖 JSON 串行化的默认设置,<converters>元素指定定制的类型转换器。 。<authenticationService>元素用于使身份认证服务可用或不可用。<profileService>
元素用于使个性化信息服务可用或不可用,并指定服务暴露的属性。<scriptResourceHandler>
元素用于使缓存可用或不可用,以及由脚本使用的资源压缩。
<scriptResourceHandler>元素、 <authenticationService>元素和<profileService>
元素只能定义在 Machine.config 文件或应用程序根目录下的 Web.config 文件中。<jsonSerialization>元素则还可以定义在Web 站点的子文件夹下的 Web.config 中。
下例示例展示了用于 ASP.NET AJAX 的<system.web.extensions>元素,可以将此节添加到已存在的 Web.config 文件中做为<configuration>元素的一个子元素:
<system.web.extensions> <scripting> <webServices> <!-- 定制 maxJsonLength 并添加一个定制的 JSON 转换程序。 --> <!-- <jsonSerialization maxJsonLength="500"> <converters> <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/> </converters> </jsonSerialization> --> <!-- 使论证服务可用,如果合适包括 requireSSL="true" 。--> <!-- <authenticationService enabled="true" requireSSL = "true|false"/> -->
<!-- 使个性化服务可用。要允许在 ASP.NET AJAX 应用程序中获取或修改个性化属性, 需要将每个属性的名称添加到 readAccessProperties 和 writeAccessProperties 属性中。 --> <!-- <profileService enabled="true" readAccessProperties="propertyname1,propertyname2" writeAccessProperties="propertyname1,propertyname2" /> --> </webServices>
<!-- 开启对客户端脚本文件的压缩或缓存的支持。 --> <!-- <scriptResourceHandler enableCompression="true" enableCaching="true" /> --> </scripting> </system.web.extensions>
<system.webserver> 元素
<system.webserver> 元素包含用于 Microsoft Internet 信息服务(IIS) 7.0 的配置设置。
下例示例展示了用于 ASP.NET AJAX 的<system.webserver> 元素,可以将此节添加到已存在的 Web.config 文件中做为<configuration>元素的一个子元素:
<system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules> <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </modules> <handlers> <remove name="WebServiceHandlerFactory-ISAPI-2.0"/> <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.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=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </handlers> </system.webServer>
总结
总的来说,构建一个 ASP.NET AJAX 的开发环境还是很简单的。 |