2011-07-24 22 views
3

我已經在我的Linux服務器上安裝了mono平臺,並且我能夠在nginx HTTP服務器後面運行它。該系統運行良好,完美地爲.NET特定的動態文件提供服務。什麼是.NET平臺文件擴展名?

但是,我只想傳遞所需的文件(擴展名)爲mono,並讓nginx處理所有其他文件,包括靜態文件和在.NET平臺上不應該在正常情況下提供的文件。我已經配置了我的nginx,如下所示,但是 - 因爲我對.NET平臺沒有足夠的瞭解 - 我不確定哪些擴展 應該 必須傳遞給mono,哪些擴展必須被禁止。

這裏是我的nginx的配置文件的相關部分:

# Do not pass .NET forbidden extensions to anywhere. 
# Theese are the extensions that should not be served to the clients 
location ~ \.(config|dbml|dll|master|other|forbidden|exts)$ { 
    deny all; 
} 

這裏是將將所需(僅)文件到單聲道配置部分:

# Theese are the extensions which *must* be handled by mono 
location ~ \.(aspx|cs|other|exts|that|must|be|handled|by|mono)$ { 
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include   fastcgi.conf; 
    fastcgi_index default.aspx; 
} 

# Other static files will be handled by nginx. 

我發現來自Wikipedia entry的一些.NET特定的文件擴展名,但它們還遠遠沒有完成。

所以我的問題有三個子問題:

  • 什麼是.NET平臺特定的文件擴展名?
  • 其中必須是由.NET引擎處理?
  • 其中哪些是保密的,不得送達給客戶?

這將是一個共享主機環境,所以任何缺少的擴展可能會導致不良影響(例如,顯示的用戶密碼或應用程序設置)。

回答

7

可能最容易看的地方是主web.config文件,它是聲明ASP.NET基本設置的位置。這包括<httpHandlers>,例如:

<httpHandlers> 
    <add verb="*" path="*.rules" type="System.Web.HttpForbiddenHandler" validate="true"/> 
    <add verb="*" path="*.xoml" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/> 
    <add path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/> 
    <add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="True"/> 
    <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True"/> 
    <add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True"/> 
    <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True"/> 
    <add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True"/> 
    <add path="*.asmx" verb="*" type="System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="False"/> 
    <add path="*.rem" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False"/> 
    <add path="*.soap" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False"/> 
    <add path="*.asax" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.master" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.skin" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.browser" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.sitemap" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.dll.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True"/> 
    <add path="*.exe.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True"/> 
    <add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.csproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.vb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.vbproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.webinfo" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.licx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.resx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.resources" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.vjsproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.java" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.jsl" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.ldb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.ad" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.dd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.ldd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.sd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.adprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.lddprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.exclude" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*.refresh" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/> 
    <add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True"/> 
    <add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="True"/> 
</httpHandlers> 
+0

所以'System.Web.HttpForbiddenHandler'類型不能送達,是嗎? –

+0

是的,你是對的。 –