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

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

1 голос
/ 15 мая 2011

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

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

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

...