Как предотвратить развертывание ASP.NET MVC на IIS 6.0 с использованием подстановочного сопоставления при попытке обработки скрытых подключений к общим ресурсам? - PullRequest
0 голосов
/ 03 марта 2010

Как отмечено в заголовке, каков наилучший способ настроить развертывание IIS 6.0 приложения ASP.NET MVC таким образом, чтобы соединения со скрытыми общими папками игнорировались? В рассматриваемом приложении используется сопоставление с подстановочными знаками для обеспечения чистых 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 ]

1 голос
/ 03 марта 2010

Добавить в конфиг

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

И добавьте игнорируемые маршруты к вашей карте маршрутов:

routes.IgnoreRoute("[HiddenFolder]");
0 голосов
/ 03 марта 2010

Я правильно понимаю, что у вас есть скрытая папка в вашем виртуальном каталоге?

Если это так, скрытая папка должна все еще отображаться в IIS. Вам необходимо подделать папку как виртуальный каталог, который дает вам доступ к кнопке конфигурации и удаляет сопоставления с подстановочными знаками. Затем удалите папку как виртуальный каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...