是否可以将新文件扩展名映射到ASP.NET中的现有处理程序?
我有一个场景,我的应用程序将发布PC和移动设备都使用的服务,我有一个HTTPModule,我只想在移动请求上执行工作。因此,我认为最好的方法是将移动请求指向另一个文件扩展名,并让HTTPModule决定仅在请求以这个新扩展名为目标时进行处理 我不需要新扩展的定制HTTPHandler;我想像普通的.ASMX服务一样对服务进行编程,只是使用不同的扩展 首先,我可以这样做吗?如果是这样的话,我该如何做才能像处理.ASMX请求一样处理对新扩展的请求 第二,这是正确的方法吗?我是否打算以错误的方式分离和管理移动和PC请求 谢谢,是否可以将新文件扩展名映射到ASP.NET中的现有处理程序?,asp.net,web-services,asmx,httphandler,httpmodule,Asp.net,Web Services,Asmx,Httphandler,Httpmodule,我有一个场景,我的应用程序将发布PC和移动设备都使用的服务,我有一个HTTPModule,我只想在移动请求上执行工作。因此,我认为最好的方法是将移动请求指向另一个文件扩展名,并让HTTPModule决定仅在请求以这个新扩展名为目标时进行处理 我不需要新扩展的定制HTTPHandler;我想像普通的.ASMX服务一样对服务进行编程,只是使用不同的扩展 首先,我可以这样做吗?如果是这样的话,我该如何做才能像处理.ASMX请求一样处理对新扩展的请求 第二,这是正确的方法吗?我是否打算以错误的方式分离和
Dave是的,可以注册自定义文件扩展名并使其与现有的.NET运行时配合使用。您可以执行以下步骤 您需要在IIS中添加脚本映射(假定为IIS 7)并将其指向ASP.NET运行时,以便IIS可以将请求转发到正确的处理器
<system.web>
<compilation>
<buildProviders>
<add extension=".aspx" type="System.Web.Compilation.PageBuildProvider" />
<add extension=".ascx" type="System.Web.Compilation.UserControlBuildProvider" />
<add extension=".master" type="System.Web.Compilation.MasterPageBuildProvider" />
<add extension=".asix" type="System.Web.Compilation.ImageGeneratorBuildProvider" />
<add extension=".asmx" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".ashx" type="System.Web.Compilation.WebHandlerBuildProvider" />
<add extension=".soap" type="System.Web.Compilation.WebServiceBuildProvider" />
<add extension=".resx" type="System.Web.Compilation.ResXBuildProvider" />
<add extension=".resources" type="System.Web.Compilation.ResourcesBuildProvider" />
<add extension=".wsdl" type="System.Web.Compilation.WsdlBuildProvider" />
<add extension=".xsd" type="System.Web.Compilation.XsdBuildProvider"/>
<add extension=".js" type="System.Web.Compilation.ForceCopyBuildProvider" />
</buildProviders>
</compilation>
</system.web>
您很可能只需复制一个现有的生成提供程序,该提供程序基于与您正在执行的操作最匹配的提供程序,并将其注册到您的应用程序web.config中
<system.web>
<compilation>
<buildProviders>
<add extension=".xxxx" type="System.Web.Compilation.WebServiceBuildProvider" />
</buildProviders>
</compilation>
</system.web>