Пользовательские расширения файлов для ASP.NET — требуется помощь!

#.net #asp.net #apache #httphandler #file-extension

#.net #asp.net #апач #httphandler #расширение файла #apache

Вопрос:

У меня есть modaspdotnet, работающий на моем сервере Apache 2.2, и как таковой он запускается ASP.NET и MySQL довольно хорошо.

Однако то, что я хотел бы сделать, это предоставлять контент с другими расширениями, чем просто .aspx по умолчанию, например myfile.customextension.

В Apache, я полагаю, это делается через .htaccess, но в ASP.NET это делается через web.config.

Это мой файл web.config:

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
  </system.web>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension=".testing1" mimeType="application/x-asp-net " />
        </staticContent>
    </system.webServer>

</configuration>
  

Это ДЕЙСТВИТЕЛЬНО работает, но ASP.NET код не отображается должным образом — и я хочу иметь возможность запускать ASP.NET код с любым пользовательским расширением.

Установлены IIS и NET 3.5.

Я не хочу запускать полноценный сервер IIS, но мне нужно ASP.NET для проекта, которым я занимаюсь, отсюда надстройка modaspdotnet для Apache.

Это последняя строка моего httpd.conf, обозначающая установку modaspdotnet:

     LoadModule aspdotnet_module modules/mod_aspdotnet.so

# Use the asp.net handler for all common ASP.NET file types
AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj 
                   licx rem resources resx soap vb vbproj vsdisco webinfo 
<IfModule mod_aspdotnet.cpp> 
  # For all virtual ASP.NET webs, we need the aspnet_client files
  # to serve the client-side helper scripts.
  AliasMatch /aspnet_client/system_web/(d )_(d )_(d )_(d )/(.*) "C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
  <Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
    Options FollowSymlinks
    Order allow,deny
    Allow from all
  </Directory>
</IfModule>
#asp.net 
AddType application/x-asp-net .asp
AddType text/html .asp
AddHandler application/x-httpd-php .asp
  

Почему у меня это не работает, и что я должен сделать, чтобы решить эту проблему?
Я просмотрел сеть, но не смог найти слишком много… есть идеи?

Ответ №1:

Простого добавления типа mime недостаточно — страница не интерпретируется, а просто передается в браузер. Я мало что знаю об apache. Но обычно, когда вы хотите обслуживать обычную aspx-страницу, но с другим расширением, вы должны:

  1. Добавьте свой aspx httphandler по умолчанию в пользовательское расширение, подобное этому:
  <httpHandlers>
...
<add verb="*" path="*.mycustomextension"> type="System.Web.UI.PageHandlerFactory"/>
  
  1. Зарегистрировать поставщика сборки:
 <compilation >
      <buildProviders>
          <add extension=".mycustomextension" type="System.Web.Compilation.PageBuildProvider" /> 
      </buildProviders>
  

Попробуйте, возможно, это укажет вам правильное направление