我正在开发使用许可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似乎在这些符号链接上跳动。
当你进入''debug = requestinfo'(需要在[DebugMode](https://github.com/ServiceStack/ServiceStack/wiki/Debugging#wiki-debugmode))时,是否有StartupError – mythz
@mythz ,感谢指针,我已经更新了我的问题和后果。 – Martaver