我的Web应用程序中有一个ADO.NET Entity-Framework * .edmx文件。
当我在浏览器中浏览(当应用程序运行时)到edmx文件时,它不会显示错误页面,就像浏览到* .cs或vb文件一样,它会打开edmx并显示我的模型方案给所有用户!!!
我该如何避免这种情况。
答案 0 :(得分:11)
您应该将扩展名映射到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>
答案 1 :(得分:8)
你可以这两种方式做到这一点;首先在web.config中或其次在IIS
中<system.web>
<httpHandlers>
<add verb="*" path="*.edmx" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
</system.web>
这是微软支持页面的链接,详细说明了如何在Web配置和IIS中执行此操作。