10

我的 Web 应用程序中有一个 ADO.NET Entity-Framework *.edmx 文件。

当我在浏览器中(当应用程序运行时)浏览到 edmx 文件时,它不会像浏览到 *.cs 或 vb 文件时那样显示错误页面,它会打开 edmx 并向所有用户显示我的模型方案用户!!!

我怎样才能避免这种情况。

4

2 回答 2

11

您应该将扩展映射到 .NET 中的 ASP.NETSystem.Web.HttpForbiddenHandlerweb.config。如果您使用的是 IIS6,那么在您这样做之前,您应该已经将扩展映射到 ASP.NET ISAPI 处理程序。

IIS7 集成模式:

<system.webServer>
    <handlers>
        <add name="MyForbiddenExtensionHandler" 
             path="*.edmx" 
             verb="*" 
             type="System.Web.HttpForbiddenHandler" 
             preCondition="integratedMode" />
    </handlers>
</system.webServer>

IIS7 经典模式。就像是:

<system.web>
  <httpHandlers>
     <add path="*.edmx" 
         verb="*" 
         type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </httpHandlers>
</system.web>
<system.webServer>
  <handlers>
     <add name="MyExtensionISAPI" 
         path="*.edmx" 
         verb="*" 
         modules="IsapiModule" 
         scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
  </handlers>
</system.webServer>

IIS6(在将处理程序映射到aspnet_isapi.dllIIS6 配置后):

<system.web>
  <httpHandlers>
     <add path="*.edmx" 
         verb="*" 
         type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </httpHandlers>
</system.web>
于 2009-06-27T21:49:22.080 回答
9

您可以通过两种方式做到这一点;首先在 web.config 中,其次在 IIS 中

<system.web>
    <httpHandlers>
        <add verb="*" path="*.edmx" type="System.Web.HttpForbiddenHandler" />
    </httpHandlers>
</system.web>

这是一个指向 microsoft 支持页面的链接,该页面详细说明了如何在 web config 和 IIS 中执行此操作。

http://support.microsoft.com/kb/815152

于 2009-06-27T21:53:48.733 回答