Да, можно зарегистрировать пользовательское расширение файла и заставить его работать с существующей средой выполнения .NET. Вы можете выполнить следующие шаги.
Вам необходимо добавить ScriptMap в IIS (при условии, что IIS 7) и указать его во время выполнения ASP.NET, чтобы IIS мог перенаправить запрос на правильный процессор.
- В IIS7 зайдите на свой сайт или в корень IIS для регистрации на уровне сервера
- В группе IIS перейдите к сопоставлениям обработчиков
- В разделе Действия нажмите Добавить карту сценариев
- Установить путь запроса на * .xxxx
- Укажите путь к среде выполнения ASP.NET (% windir% \ Microsoft.NET \ Framework64 \ v2.0.50727 \ aspnet_isapi.dll) или любой другой версии, которую вы используете.
Затем вам нужно будет зарегистрировать пользовательский поставщик сборки для расширения файла, чтобы среда выполнения .NET могла предварительно скомпилировать ваш код, предполагая, что вы хотите, чтобы он работал аналогично * .asmx.
Вот список некоторых встроенных поставщиков сборки:
<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>