2011-05-14 137 views
2

我有modaspdotnet在我的Apache 2.2服務器上工作,因此它運行ASP.NET和MySQL相當不錯。ASP.NET的自定義文件擴展名 - 需要幫助!

但是,我想要做的是提供其他擴展的內容,而不僅僅是默認的.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來執行我正在執行的項目,因此Apache的modaspdotnet附加組件。

這是我的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 

爲什麼這個工作不適合我,我應該怎麼做才能解決這個問題? 我看了看網絡,但找不到太多...有什麼想法?

回答

0

添加簡單的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> 

試試吧,也許這將指向你在正確的方向