Mono MVC3 не удалось сопоставить путь - PullRequest
1 голос
/ 05 декабря 2011

Я пытаюсь заставить приложение MVC3 работать под моно, и все шло хорошо, пока я не развернулся на моем сервере ...

В настоящее время я получаю:

Failed to map path '/projects/_ViewStart.cshtml'

System.InvalidOperationException: Failed to map path '/projects/_ViewStart.cshtml'
  at System.Web.HttpRequest.MapPath (System.String virtualPath, System.String baseVirtualDir, Boolean allowCrossAppMapping) [0x00000] in <filename unknown>:0 
  at System.Web.HttpRequest.MapPath (System.String virtualPath) [0x00000] in <filename unknown>:0 
  at System.Web.Hosting.HostingEnvironment.MapPath (System.String virtualPath) [0x00000] in <filename unknown>:0 
  at System.Web.Hosting.DefaultVirtualPathProvider.FileExists (System.String virtualPath) [0x00000] in <filename unknown>:0 
  at System.Web.WebPages.FileExistenceCache.FileExists (System.String virtualPath) [0x00000] in <filename unknown>:0 
  at System.Web.WebPages.VirtualPathFactoryManager.PageExistsInVPP (System.String virtualPath, Boolean useCache) [0x00000] in <filename unknown>:0 
  at System.Web.WebPages.VirtualPathFactoryManager.PageExists (System.String virtualPath, Boolean useCache) [0x00000] in <filename unknown>:0 
  at System.Web.WebPages.WebPageExecutingBase.FileExists (System.String path, Boolean useCache) [0x00000] in <filename unknown>:0 
  at System.Web.WebPages.StartPage.GetStartPage (System.Web.WebPages.WebPageRenderingBase page, System.String fileName, IEnumerable`1 supportedExtensions) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.RazorView.RenderView (System.Web.Mvc.ViewContext viewContext, System.IO.TextWriter writer, System.Object instance) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.BuildManagerCompiledView.Render (System.Web.Mvc.ViewContext viewContext, System.IO.TextWriter writer) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.ViewResultBase.ExecuteResult (System.Web.Mvc.ControllerContext context) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.ControllerActionInvoker+<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19 () [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (IResultFilter filter, System.Web.Mvc.ResultExecutingContext preContext, System.Func`1 continuation) [0x00000] in <filename unknown>:0 

Ошибка.Я могу подтвердить, что все файлы и DLL существуют, но путь выглядит неправильно, конечно, он должен быть в папке Views, где вещи существуют?

Есть ли какие-то настройки, которые мне нужно установитьчтобы убедиться, что он выглядит в правильном месте просмотров?Я также заметил, что до пути к файлу нет символа "~" ...

Я искал в сети и пробовал различные решения, но ни одно из них не работает ..

Ответы [ 2 ]

0 голосов
/ 20 января 2014

Я получаю ту же ошибку при прямом вызове

HttpContext.Current.Server.MapPath("/") или

HttpContext.Current.Server.MapPath(Path.DirectorySeparatorChar.ToString()) 

Однако это работает:

HttpContext.Current.Server.MapPath("~")
0 голосов
/ 16 февраля 2012

Посмотрите на вашу конфигурацию Apache, для меня там написано

Не удалось запустить '/ usr / bin / mod-mono-server2 - имя файла / tmp / mod_mono_server_bla --applications / testmono:/ var / www / ModMonoMvc3Application --nonstop (null) (null) (null) (null) (null) (null) (null) '.Причина: нет такого файла или каталога

, потому что я неправильно понял параметр конфигурации AddMonoApplications.Он должен выглядеть примерно так:

# "default" is defined in mods-available/mod_mono.conf
AddMonoApplications default "/testmono:/var/www/ModMonoMvc3Application"

<Location /testmono/>
    SetHandler mono
</Location>

Я случайно написал «bla» вместо «default», потому что я думал, что это имя приложения, но на самом деле оно определяет, какой исполняемый файл сервера запущен.

...