2013-05-10 3 views
0

Я установил моно из источника на Centos 6.4, чтобы протестировать веб-сайт msc asp. Это, кажется, работает нормально все, но некоторые страницы возвращают эту ошибкуasp.net on mono Не удалось отобразить путь '/'

System.InvalidOperationException 
Failed to map path '/' 

Description: HTTP 500.Error processing request. 
Details: Non-web exception. Exception origin (name of application or object): 
System.Web. 
    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.DirectoryExists (System.String virtualDir) [0x00000] in <filename unknown>:0 
    at System.Web.Configuration.WebConfigurationManager.FindWebConfig (System.String path, System.Boolean& inAnotherApp) [0x00000] in <filename unknown>:0 
    at System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration (System.String path, System.String site, System.String locationSubPath, System.String server, System.String userName, System.String password, Boolean fweb) [0x00000] in <filename unknown>:0 
    at System.Web.Configuration.WebConfigurationManager.GetSection (System.String sectionName, System.String path, System.Web.HttpContext context) [0x00000] in <filename unknown>:0 
    at System.Web.Configuration.WebConfigurationManager.GetSection (System.String sectionName, System.String path) [0x00000] in <filename unknown>:0 
    at System.Web.Security.SqliteMembershipProvider.Initialize (System.String name, System.Collections.Specialized.NameValueCollection config) [0x00000] in <filename unknown>:0 
    at System.Web.Configuration.ProvidersHelper.InstantiateProvider (System.Configuration.ProviderSettings providerSettings, System.Type providerType) [0x00000] in <filename unknown>:0 
    at System.Web.Configuration.ProvidersHelper.InstantiateProviders (System.Configuration.ProviderSettingsCollection configProviders, System.Configuration.Provider.ProviderCollection providers, System.Type providerType) [0x00000] in <filename unknown>:0 
    at System.Web.Security.Membership..cctor() [0x00000] in <filename unknown>:0 

Я сделал то же самое на Debian и он прекрасно работает.

Есть ли у вас какие-либо предложения?

ответ

0

Найти все Server.MapPaths и изменения от

Server.MapPaths (@ "\")

в

Server.MapPaths (Path.DirectorySeparatorChar)

+0

в web.config? Я не нахожу этот тег ... – user2369620

-1

Я имел такая же ошибка, с точно такой же stacktrace. Это произошло только при первом запросе, когда apache только что был запущен. Ошибка не возникла после первого запроса.

Я решил эту проблему путем удаления WebMatrix.WebData.dll

Это, вероятно, имеют некоторые последствия при использовании SimpleMembershipProvider и это может повлиять на OpenAuth функциональность на MVC4.

+0

Это действительно ответ на мой вопрос, и он может ответить на вопрос других. Вышеуказанные комментарии, однако, нет. Если мой ответ непонятен, не стесняйтесь спрашивать! – Tidbit

0

Вы проверили пути в своих файлах просмотра? Так же, как напоминание:

«/», как в <script src="/myScript.js"></script> карты в папку DocumentRoot, определенной на вашем /sites-available/.conf, это может быть что-то вроде/вар/WWW

«~ /», как и в <script src="@Url.Content("~/scripts/script1.js")"></script> отображает путь к вашему приложению mvc, может быть что-то вроде/var/www/site1

«../» попытается получить доступ к одной папке над папкой DocumentRoot. Это может быть фактически запрещено с помощью настройки вашего сайта Apache (рекомендуется).

Также обратите внимание, что если вы запустите приложение mvc из monodevelop/xspServer, то корневой каталог документа и путь приложения mvc на самом деле совпадают, но если вы установите приложение mvc на apache, это может быть не один и тот же путь.

0

Эта ошибка возникает, потому что есть ошибка в моно System.Web

Он содержит эту проверку (https://github.com/mono/mono/blob/mono-3.2.1-branch/mcs/class/System.Web/System.Web/HttpRequest.cs#L1565)

if (!isAppVirtualPath && !virtualPath.StartsWith (appVirtualPath, RuntimeHelpers.StringComparison)) 
     throw new InvalidOperationException (String.Format ("Failed to map path '{0}'", virtualPath)); 

Чтобы это исправить, вы можете прокомментировать эти строки в Mono код Surce и повторно -компилировать Моно. Эта ошибка находится в последней версии Mono.

Ссылки:

https://bugzilla.xamarin.com/show_bug.cgi?id=24457

Смежные вопросы