2014-07-21 26 views
31

ASP.NET MVC 4 web sitemi FedEx 20 iş istasyonumda xsp4 ile (MonoDevelop'dan veya doğrudan) çalıştırdığımda şu özel durumu elde ediyorum:"/ etc/mono/registry" yoluna erişim reddedildi

System.Web.HttpRuntime.FinishWithException (wr={Mono.WebServer.XSPWorkerRequest}, e={System.Web.HttpException: ---> System.Web.HttpException: The pre-application start initialization method Start on type System.Web.WebPages.PreApplicationStartCode threw an exception with the following error message: Exception has been thrown by the target of an invocation. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: An exception was thrown by the type initializer for <Module> ---> System.Security.SecurityException: No access to the given key ---> System.UnauthorizedAccessException: Access to the path "/etc/mono/registry" is denied. 
at System.IO.Directory.CreateDirectoriesInternal (System.String path) [0x00064] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/System.IO/Directory.cs:113 
at System.IO.Directory.CreateDirectory (System.String path) [0x000a4] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/System.IO/Directory.cs:80 
at System.IO.DirectoryInfo.Create() [0x00000] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/System.IO/DirectoryInfo.cs:141 
at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo:Create() 
at System.IO.Directory.CreateDirectoriesInternal (System.String path) [0x00039] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/System.IO/Directory.cs:98 
at System.IO.Directory.CreateDirectory (System.String path) [0x000a4] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/System.IO/Directory.cs:80 
at Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey rkey, System.String basedir, Boolean is_volatile) [0x0004a] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:136 
--- End of inner exception stack trace --- 
at Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey rkey, System.String basedir, Boolean is_volatile) [0x00057] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:138 
at Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey rkey, System.String basedir) [0x00000] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:116 
at Microsoft.Win32.KeyHandler.Lookup (Microsoft.Win32.RegistryKey rkey, Boolean createNonExisting) [0x000cc] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:412 
at Microsoft.Win32.UnixRegistryApi.OpenSubKey (Microsoft.Win32.RegistryKey rkey, System.String keyname, Boolean writable) [0x00000] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:836 
at Microsoft.Win32.RegistryKey.OpenSubKey (System.String name, Boolean writable) [0x0001e] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/Microsoft.Win32/RegistryKey.cs:278 
at Microsoft.Win32.RegistryKey.OpenSubKey (System.String name) [0x00000] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/Microsoft.Win32/RegistryKey.cs:262 
at (wrapper remoting-invoke-with-check) Microsoft.Win32.RegistryKey:OpenSubKey (string) 
at Microsoft.Web.Infrastructure.RegistryKeyWrapper.OpenSubKey (System.String name) [0x00000] in <filename unknown>:0 
at Microsoft.Web.Infrastructure.KillBitHelper.GetKillBittedVersions() [0x00000] in <filename unknown>:0 
at Microsoft.Web.Infrastructure.KillBitHelper.IsThisAssemblyKillBitted() [0x00000] in <filename unknown>:0 
at Microsoft.Web.Infrastructure.KillBitHelper.ThrowIfKillBitIsSet() [0x00000] in <filename unknown>:0 
at Microsoft.Web.Infrastructure.ModuleInitializer+CriticalInitializer.CheckKillBit() [0x00000] in <filename unknown>:0 
at Microsoft.Web.Infrastructure.ModuleInitializer+CriticalInitializer.Initialize() [0x00000] in <filename unknown>:0 
at Microsoft.Web.Infrastructure.ModuleInitializer.Initialize() [0x00000] in <filename unknown>:0 
at <Module>..cctor() [0x00000] in <filename unknown>:0 
--- End of inner exception stack trace --- 
at System.Web.WebPages.PreApplicationStartCode.Start() [0x0002b] in /builddir/build/BUILD/mono-3.4.0/external/aspnetwebstack/src/System.Web.WebPages/PreApplicationStartCode.cs:40 
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) 
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00054] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/System.Reflection/MonoMethod.cs:230 
--- End of inner exception stack trace --- 
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00069] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/System.Reflection/MonoMethod.cs:238 
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in /builddir/build/BUILD/mono-3.4.0/mcs/class/corlib/System.Reflection/MethodBase.cs:114 
at System.Web.Compilation.BuildManager.CallPreStartMethods() [0x0004f] in /builddir/build/BUILD/mono-3.4.0/mcs/class/System.Web/System.Web.Compilation/BuildManager.cs:561 
--- End of inner exception stack trace --- 
at System.Web.Compilation.BuildManager.CallPreStartMethods() [0x0007e] in /builddir/build/BUILD/mono-3.4.0/mcs/class/System.Web/System.Web.Compilation/BuildManager.cs:564 
at System.Web.HttpApplicationFactory.InitType (System.Web.HttpContext context) [0x00059] in /builddir/build/BUILD/mono-3.4.0/mcs/class/System.Web/System.Web/HttpApplicationFactory.cs:408 
--- End of inner exception stack trace ---}) in /builddir/build/BUILD/mono-3.4.0/mcs/class/System.Web/System.Web/HttpRuntime.cs:674 

bunu kontrol ettim ve /etc/mono/ hiçbir registry dosya veya klasör vardır. Ayrıca herhangi bir alt klasörde bulamıyorum, bu sorunu nasıl çözebilirim?

Ben son 3.15.6 kernel

$ mono --version 
Mono JIT compiler version 3.4.0 (tarball Fri Jun 27 17:26:36 UTC 2014) 
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com 
    TLS:   __thread 
    SIGSEGV:  altstack 
    Notifications: epoll 
    Architecture: amd64 
    Disabled:  none 
    Misc:   softdebug 
    LLVM:   supported, not enabled. 
    GC:   sgen 

$ xsp4 --version 
xsp4.exe 3.0.0.0 
Copyright (C) 2002-2011 Novell, Inc. 
Minimalistic web server for testing System.Web 

Ben Ubuntu 14.04 LTS başka kurulum ve belki mono sürümüyle şey olabilecek veya böylece bir, işleri ile Fedora 20 koşuyorum Bazı kütüphane eksik mi?

cevap

61

basitçe mkdir

sudo mkdir /etc/mono/registry

kullanarak klasör oluşturarak ve chmod

sudo chmod uog+rw /etc/mono/registry

hile yok kullanılarak doğru izinleri ayarlarken çıkıyor. Ancak, Ubuntu'da böyle bir klasörün nerede saklandığını ve neden orada oluşturulmasının gerekmediğini ve kurulum sırasında neden otomatik olarak oluşturulmadığını hala anlamıyorum.

+7

, ben 'sudo chmod uog + rw/etc/mono/registry' yapmak zorunda. Yardım için teşekkürler! –

+0

@peter - Bu dizini oluşturmaya çalışıyorum ama izin reddedildi diyor. Ancak ben PC yöneticisi. – xameeramir

+0

Komutu sudo olarak çalıştırdınız mı? – peter

1

Sen kontrol bir dizine işaret etmek MONO_REGISTRY_PATH ayarlayabilirsiniz: Benim durumumda

bash mkdir my-registry MONO_REGISTRY_PATH=`pwd`/my-registry xsp4

İlgili konular