背景(如果你想的问题跳到底部)AnkhSVN的打破了SVN 1.7
最近我升级的SVN仓库(托管在assembla)到SVN 1.7 ASP.NET共享权限。这样做后,我们开始间歇性地在存储库本地工作副本中的ASP.NET网站页面上遇到大量File Access Denied
错误。
某些文件夹也开始出现奇怪的文件权限(它们被标记为只读),并且用户共享从它们中删除。这些问题只会在更新/提交循环之后通过AnkhSVN的Visual Studio插件才会开始发生,但不是所有的时间;它似乎非常气质。
我们迄今为止发现的唯一临时修复是提交任何未完成的更改,删除本地副本并重新签出完整的工作副本(使用TortoiseSVN)。但是,这不是一个可行的解决方案,并且严重影响生产力。
此网站是基于Azure的ASP.NET WebWorkerRole。在升级到SVN 1.7之前,它从未给出任何问题。我尝试摆弄内部IIS权限来解决问题,但是,没有骰子。
我的环境
- 的Visual Studio 2010旗舰版SP1 10.0.40219.1
- AnkhSVN的2.3.10509(最新版本,支持SVN 1.7.1)
- TortoiseSVN的1.7.1,建设22161 - 64位
- 经由天青模拟器环境运行在调试模式下
问题
SVN 1.7或我的环境中的任何工具是否有可能中断文件权限,以便文件在ASP.NET网站中无法使用?更重要的是,我该如何解决这个问题?
确切的文件权限错误倾倒出来是这样的:
访问路径 '// //文件' 被拒绝。
描述:在执行 当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。
异常详细信息:System.UnauthorizedAccessException:访问 路径'// file //'被拒绝。
ASP.NET未被授权访问请求的资源。考虑 将对资源的访问权限授予ASP.NET请求 标识。 ASP.NET具有基本的进程标识(通常在IIS 5上为IIS35或IIS5上的 {MACHINE} \ ASPNET或IIS 7上的网络服务,以及在IIS 7.5上配置的应用程序池标识, ) 。如果应用程序是 模拟通过,身份将是 匿名用户(通常IUSR_MACHINENAME)或验证 请求用户。
要授予对文件的ASP.NET访问权限,请右键单击资源管理器中的文件, 选择“属性”并选择安全选项卡。点击“添加”添加 适当的用户或组。突出显示ASP.NET帐户,并 选中所需访问的复选框。
但干净的工作副本不会产生此错误。比较两者的权限,似乎没有窃听的工作拷贝与IUSR和本地帐户共享,而破坏的工作拷贝没有共享,但共享永远不会被用户改变。
你能指出文件权限被破坏的方式吗?他们设定了什么,缺少什么等等?你能指出工作拷贝根目录(包含.svn文件夹的文件夹)吗?另外我认为你需要编辑你的问题来定义仓库和工作副本之间的区别。您不需要在Subversion中克隆“客户端存储库”。 –
@SanderRijken:好的,我会更新它。在克隆思维方面,是GIT的... – Necrolis