如何使用通配符映射阻止IIS 6.0上的ASP.NET MVC部署尝试处理隐藏的共享连接?

时间:2010-03-03 13:19:12

标签: asp.net-mvc iis-6

正如标题所述,配置ASP.NET MVC应用程序的IIS 6.0部署的最佳方法是什么,以便忽略与隐藏共享的连接?有问题的应用程序使用通配符映射来允许干净的URL,因为我们计划在不久的将来升级到IIS 7.0,我们也在处理自定义库的缓存和压缩问题,因此我们希望避免关闭通配符映射除非绝对必要。

以下是应用程序中的一个错误,为您提供了我们所看到的示例。

--------------------------------------------------------------------------------
System.Web.HttpException
--------------------------------------------------------------------------------
Time Stamp  - 03 Mar 2010, 08:11:44
Path        - N/A, Internal Server Operation
Message     - The controller for path '/C$' could not be found or it does not implement IController.
Target Site - System.Web.Mvc.IController GetControllerInstance(System.Type)
Stack Trace - 
   at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(Type controllerType)
   at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
   at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext)
   at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
--------------------------------------------------------------------------------

2 个答案:

答案 0 :(得分:1)

添加配置

<location path="HiddenFolder">
  <system.web> 
    <authorization>
      <deny users="*" />
    </authorization>
   </system.web>
</location>

并在路线图中添加忽略路线:

routes.IgnoreRoute("[HiddenFolder]");

答案 1 :(得分:0)

我认为你的虚拟目录下有一个隐藏文件夹是正确的吗?

如果是这样,隐藏文件夹仍应显示在IIS中。您需要将该文件夹伪装成虚拟目录,这样您就可以访问“配置”按钮并删除通配符映射。然后将该文件夹作为虚拟目录删除。