使用WebPageHttpModule的Xamarin Studio和Mono调试问题

时间:2013-04-05 05:47:32

标签: mono monodevelop servicestack xamarin-studio

关于新的Xamarin Studio有很多值得关注但是每次运行我的web项目时都会遇到System.Security.SecurityException - 无法访问给定的密钥。

如果我继续执行并在Safari中刷新页面,则该网站可以正常运行。这是网站第一次加载。

它在反汇编程序中停止:

0000001d   call Void System.Web.WebPages.WebPageHttpHandler:RegisterExtension (String)
00000022   ldc.i4.0 
00000023   call Void System.Web.UI.PageParser:set_EnableLongStringsAsResources (Boolean)
>00000028   ldtoken System.Web.WebPages.WebPageHttpModule
0000002d   call Type System.Type:GetTypeFromHandle (RuntimeTypeHandle)
00000032   call Void  Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility:RegisterModule (Type)
00000037   newobj Void System.Web.WebPages.Scope.AspNetRequestScopeStorageProvider:.ctor ()
0000003c   call Void System.Web.WebPages.Scope.ScopeStorage:set_CurrentProvider (IScopeStorageProvider)
00000041   ret 

这似乎是竞争条件。是在完成所有编译之前启动网站吗?

为了测试我添加了sleep '8s'的Before Execute任务,它不会立即发生,而是在下次选择链接时。基本上是第一次加载网站。

我可以编译代码并在Ubuntu上运行它。有什么想法吗?

其他一些环境数据:

  • OS-X Mountain Lion
  • .Net 4.0
  • Project使用ServiceStack.Net
  • MVC 3.0

1 个答案:

答案 0 :(得分:1)

如果其他人发现同样的问题,请告诉您在我执行以下操作后问题已经消失(其他原因)

  1. 从源代码管理(GitHub)中删除已编译的二进制文件,并添加了.gitignore文件。
  2. 在VS 2012中打开解决方案 - 首先必须从网站.csproj中注释掉“Imports ... web.targets”,因为这些不在我的Windows机器上,并阻止了项目的加载。
  3. 在Xamarin Studio中打开解决方案,删除了自动添加的VS 2012,如.Web.Helpers和.Web.Entity以及它注入web.config的其他引用。
  4. Xamarin Studio现在使用调试器启动网站的速度较慢,因为它加载程序集,每个都需要一秒钟 - Loaded assembly: data-0x1d9ac00 [External]等但没有错误:)

    所以可能是Git对子项目中的二进制文件做了一些事情,或者这次我碰巧正确删除了错误的DLL引用。