代码之家  ›  专栏  ›  技术社区  ›  rjzii

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

  •  0
  • rjzii  · 技术社区  · 14 年前

    如标题所述,配置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 回复  |  直到 14 年前
        1
  •  1
  •   rjzii    14 年前

    在配置中添加

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

    并将忽略路线添加到路线图中:

    routes.IgnoreRoute("[HiddenFolder]");
    
        2
  •  0
  •   David    14 年前

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

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