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