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

У меня есть 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

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


person hollinshead86    schedule 14.05.2011    source источник


Ответы (1)


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

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

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

person Oxygen12    schedule 14.05.2011