我在我的web应用程序的ADO.NET实体框架* .edmx文件。

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

如何避免这种情况。

有帮助吗?

解决方案

您可以这样做两种方式;首先在web.config或其次在IIS

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

下面是到Microsoft支持页面,详细说明如何做到这一点的web配置和IIS的链接。

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

其他提示

您应该映射在System.Web.HttpForbiddenHandler扩展到ASP.NET的web.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(映射处理程序在IIS6配置aspnet_isapi.dll后):

<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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top