Xamarin 中的 ASP.NET MVC 3 项目给出 System.UnauthorizedAccessException 错误

Posted

技术标签:

【中文标题】Xamarin 中的 ASP.NET MVC 3 项目给出 System.UnauthorizedAccessException 错误【英文标题】:ASP.NET MVC 3 project in Xamarin gives System.UnauthorizedAccessException error 【发布时间】:2013-12-29 01:13:26 【问题描述】:

我在 Mac OS X (10.9) 上运行 Xamarin (4.0.10 build 5)。我创建了 ASP.NET MVC 3 项目。第一次运行时出现 Microsoft.AspNet.WebPages 错误。我在this 文章之后解决了这个问题并修复了它。现在,当我运行它时,会出现另一个错误:

System.UnauthorizedAccessException 访问路径“/Library/Frameworks/Mono.framework/Versions/3.2.0/etc/mono/registry” 被拒绝。

堆栈跟踪:

在 System.IO.Directory.CreateDirectoriesInternal(System.String 路径) [0x00064] 在 /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin-no-pcl/build-root/mono-3.2.0/mcs/class/corlib/System.IO/Directory.cs:113 在系统.IO.Directory.CreateDirectory(System.String 路径)[0x000a4] 在 /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin-no-pcl/build-root/mono-3.2.0/mcs/class/corlib/System.IO/Directory.cs:80 在 System.IO.DirectoryInfo.Create () [0x00000] 中 /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin-no-pcl/build-root/mono-3.2.0/mcs/class/corlib/System.IO/DirectoryInfo.cs:141 在 (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo:Create () 在 System.IO.Directory.CreateDirectoriesInternal (System.String 路径)[0x00039] 在 /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin-no-pcl/build-root/mono-3.2.0/mcs/class/corlib/System.IO/Directory.cs:98 在 System.IO.Directory.CreateDirectory(System.String 路径)[0x000a4] 在 /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin-no-pcl/build-root/mono-3.2.0/mcs/class/corlib/System.IO/Directory.cs:80 在 Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey rkey, System.String basedir, Boolean is_volatile) [0x0004a] in /private/tmp/source/bockbuild-xamarin/profiles/mono-mac-xamarin-no-pcl/build-root/mono-3.2.0/mcs/class/corlib/Microsoft.Win32/UnixRegistryApi.cs:136

请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

在运行 Arch 发行版的 Linux 机器上,我进行了以下更改以解决安全问题:

sudo mkdir /etc/mono/registry
sudo mkdir /etc/mono/registry/LocalMachine
sudo chmod g+rwx /etc/mono/registry/
sudo chmod g+rwx /etc/mono/registry/LocalMachine

【讨论】:

【参考方案2】:

看看this blog post对你有没有帮助。

(解决方案的裂缝)

sudo mkdir /Library/Frameworks/Mono.framework/Versions/Current/etc/mono/registry
sudo chmod g+rwx /Library/Frameworks/Mono.framework/Versions/Current/etc/mono/registry

【讨论】:

我注意到大多数 Xamarin 用户都会崩溃。为第一次启动崩溃应用程序的软件工作室支付近 300 美元是可耻的:( @KenanBek 如果它让您感觉更好,Xamarin Studio 的 MVC 3 部分是免费的。他们向您收取为移动设备构建的费用。

以上是关于Xamarin 中的 ASP.NET MVC 3 项目给出 System.UnauthorizedAccessException 错误的主要内容,如果未能解决你的问题,请参考以下文章

我们是不是正在使用 .Net 3.5 中的 MVC 框架转向经典 ASP?

ASP.Net MVC 3 中的图表

ASP.Net MVC 3 中的多项目区域

Wordpress 类似于 ASP.NET MVC2/3 或 ASP.NET 4.0 中的动态永久链接

ASP.NET MVC教程五:ASP.NET MVC中的路由

ASP.Net MVC 3 中的全球化