什么是.NET平台文件扩展名?

提问

我在我的Linux服务器上安装了mono平台,我能够在nginx HTTP服务器后面运行它.该系统运行良好,完美地提供.NET特定的动态文件.

但是,我想只将(并且只)必需的文件(通过扩展名)传递给mono,让nginx处理所有其他文件,包括静态文件和在.NET平台上正常情况下不应该提供的文件.我已经配置了我的nginx,如下所示,但是 – 因为我对.NET平台知之甚少 – 我不确定哪些扩展必须传递给单声道,哪些必须被禁止.

这是我的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;
}

以下是将所需(仅限必需)文件传递给mono的配置部分:

# 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引擎必须处理哪些内容?
>哪些保密,不得向客户提供?

这将是共享托管环境,因此任何丢失的扩展可能会对用户产生不良影响(例如,显示的用户密码或应用程序设置).

最佳答案

可能最容易看的地方是master 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>
评论