2014-03-12 82 views
0

情况嵌套镖项目防止渲染

我正在开发使用许可ServiceStack 4.0.12纯ServiceStack /剃刀应用程序(不MVC4或Web API)ServiceStack.Razor意见。我有一个视图(cshtml),它引用了从dart项目(使用AngularDart)转换的Javascript文件。

为方便起见,我在ServiceStack项目中嵌套了dart项目文件夹,但不要将它包含在Visual Studio中。然后我分别使用Dart Editor编辑我的dart项目。

项目的整体结构看起来是这样的:

MyApp.csproj 
Global.asax.cs 
\Controllers   <- contains the IService formatted by 'Views\index.cshtml'. 
\Dart     <- not included in Visual Studio project. 
    \packages 
    \build 
      \myapp.dart.js 
    \lib 
    \web 
     \myapp.dart 
\Views     
     \index.cshtml <- references 'myapp.dart.js' 

我成立了一个简单的,在本地IIS工作ServiceStack /剃刀的“Hello World”,然后切换到省道编辑器来建立我的飞镖项目。

问题

想象一下,我无奈切换回来后仅几分钟就发现,我美丽的“Hello World”已取代“指标的快照”。没有触及单行代码,配置或重新编译。

当我切换到IIS Express时,ServiceStack/Razor应用程序将再次正常工作。相同的代码,无需更改配置或重新编译。

在失去了几个小时的头发后,戳了各种配置设置和玩沙箱项目没有效果,我碰巧将VS项目文件夹的“Dart”文件夹移出,修改了Web.config并刷新了应用程序 - 和应用程序再次工作!

果然,当我将'Dart'文件夹放回项目文件夹,修改了Web.config并刷新后 - 应用程序又恢复为快照。

问题

当然,我的问题是谁能告诉我,为什么嵌套ServiceStack项目文件夹内的飞镖项目文件夹会导致ServiceStack.Razor停止渲染的看法?

编辑:更多信息

达特文件夹包含以下文件类型:

  • pubspec.yaml
  • pubspec.lock
  • * .js文件
  • * .dart
  • *。JSON
  • 从 '网络' 文件夹的快捷方式 '包装' 文件夹(DartEditor创建这个)

编辑:从Mythz的意见

?debug=requestinfo
更多信息产生了以下StartUpErrors:

"StartUpErrors": [ 
     { 
      "ErrorCode": "UnauthorizedAccessException", 
      "Message": "Access to the path 'D:\\Semi Da Vinci\\git\\BEAU\\BEAU.Beaufort.git\\Source\\BEAU.Beaufort.Website\\Dart\\packages\\analyzer' is denied.", 
      "StackTrace": "[Object: 12/03/2014 4:44:51 PM]:\n[REQUEST: ]\nSystem.UnauthorizedAccessException: Access to the path 'D:\\Semi Da Vinci\\git\\BEAU\\BEAU.Beaufort.git\\Source\\BEAU.Beaufort.Website\\Dart\\packages\\analyzer' is denied.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.FileSystemEnumerableIterator`1.CommonInit()\r\n at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)\r\n at System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption)\r\n at ServiceStack.VirtualPath.FileSystemVirtualDirectory.GetMatchingFilesInDir(String globPattern)\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()\r\n at System.Linq.Enumerable.<DistinctIterator>d__81`1.MoveNext()\r\n at ServiceStack.Formats.MarkdownFormat.<FindMarkdownPages>d__7.MoveNext()\r\n at ServiceStack.Formats.MarkdownFormat.RegisterMarkdownPages(String dirPath)\r\n at ServiceStack.Formats.MarkdownFormat.Register(IAppHost appHost)\r\n at ServiceStack.ServiceStackHost.LoadPlugin(IPlugin[] plugins)", 
      "Errors": [] 
     }, 
     { 
      "ErrorCode": "UnauthorizedAccessException", 
      "Message": "Access to the path 'D:\\Semi Da Vinci\\git\\BEAU\\BEAU.Beaufort.git\\Source\\BEAU.Beaufort.Website\\Dart\\packages\\analyzer' is denied.", 
      "StackTrace": "[Object: 12/03/2014 4:44:51 PM]:\n[REQUEST: ]\nSystem.UnauthorizedAccessException: Access to the path 'D:\\Semi Da Vinci\\git\\BEAU\\BEAU.Beaufort.git\\Source\\BEAU.Beaufort.Website\\Dart\\packages\\analyzer' is denied.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.FileSystemEnumerableIterator`1.CommonInit()\r\n at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)\r\n at System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption)\r\n at ServiceStack.VirtualPath.FileSystemVirtualDirectory.GetMatchingFilesInDir(String globPattern)\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()\r\n at System.Linq.Enumerable.<DistinctIterator>d__81`1.MoveNext()\r\n at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()\r\n at ServiceStack.EnumerableExtensions.Each[T](IEnumerable`1 values, Action`1 action)\r\n at ServiceStack.Razor.Managers.RazorViewManager.Init()\r\n at ServiceStack.Razor.RazorFormat.Init()\r\n at ServiceStack.Razor.RazorFormat.Register(IAppHost appHost)", 
      "Errors": [] 
     }, 
     { 
      "ErrorCode": "UnauthorizedAccessException", 
      "Message": "Access to the path 'D:\\Semi Da Vinci\\git\\BEAU\\BEAU.Beaufort.git\\Source\\BEAU.Beaufort.Website\\Dart\\packages\\analyzer' is denied.", 
      "StackTrace": "[Object: 12/03/2014 4:44:51 PM]:\n[REQUEST: ]\nSystem.UnauthorizedAccessException: Access to the path 'D:\\Semi Da Vinci\\git\\BEAU\\BEAU.Beaufort.git\\Source\\BEAU.Beaufort.Website\\Dart\\packages\\analyzer' is denied.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.FileSystemEnumerableIterator`1.CommonInit()\r\n at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)\r\n at System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption)\r\n at ServiceStack.VirtualPath.FileSystemVirtualDirectory.GetMatchingFilesInDir(String globPattern)\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at ServiceStack.VirtualPath.AbstractVirtualDirectoryBase.<GetAllMatchingFiles>d__0.MoveNext()\r\n at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()\r\n at System.Linq.Enumerable.<DistinctIterator>d__81`1.MoveNext()\r\n at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()\r\n at ServiceStack.EnumerableExtensions.Each[T](IEnumerable`1 values, Action`1 action)\r\n at ServiceStack.Razor.Managers.RazorViewManager.Init()\r\n at ServiceStack.Razor.RazorFormat.Init()\r\n at ServiceStack.Razor.RazorFormat.Register(IAppHost appHost)\r\n at ServiceStack.ServiceStackHost.LoadPlugin(IPlugin[] plugins)", 
      "Errors": [] 
     } 
    ], 

经过仔细检查,下面的文件夹/软件包中的文件夹都是符号链接到系统缓存中的原始库(更多信息请见:https://www.dartlang.org/tools/pub/faq.html)。

像ServiceStack似乎在这些符号链接上跳动。

+1

当你进入''debug = requestinfo'(需要在[DebugMode](https://github.com/ServiceStack/ServiceStack/wiki/Debugging#wiki-debugmode))时,是否有StartupError – mythz

+0

@mythz ,感谢指针,我已经更新了我的问题和后果。 – Martaver

回答