AnkhSVN的突破ASP.Net共享权限与SVN 1.7 [英] AnkhSVN breaks ASP.Net sharing permissions with SVN 1.7

查看:243
本文介绍了AnkhSVN的突破ASP.Net共享权限与SVN 1.7的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

背景(如果你想的问题跳到底部)

The Background (skip to the bottom if you want the question)

最近我升级SVN回购(托管assembla)到SVN 1.7,这样做之后,我们就开始间歇性地遇到许多对ASP文件访问被拒绝错误。网网站页面是坐在仓库的本地工作副本。某些文件夹也开始变得怪异的文件权限(他们成为标记为只读)和用户分享会从它们删除。这些问题只会出现启动后更新/提交周期,通过AnkhSVN的的Visual Studio的插件,但不是所有的时间,它似乎非常喜怒无常。

Recently I upgrade an SVN repo (hosted on assembla) to SVN 1.7, after doing so, we started to intermittently encounter lots of File Access Denied errors on the ASP.Net site pages that sit in the local working copy of the repository. Some folders also start to get weird file permissions (they become marked read-only) and user sharing gets removed from them. These problems will only start occurring after an update/commit cycle, via AnkhSVN's Visual Studio plugin, but not all the time, it seems highly temperamental.

唯一的临时修复迄今为止我们发现的是犯任何未完成的更改,删除本地副本,并重新签一个完整的工作副本(与TortoiseSNV)。然而,这不是一个可行的修正,并且它严重影响生产率。

The only temp-fix we've found so far is to commit any outstanding changes, delete the local copy and re-checkout a full working copy (with TortoiseSVN). however, that is not a viable fix, and it is seriously impacting on productivity.

这个网站是一个基于Azure的ASP.Net WebWorkerRole,它升级到1.7 SVN之前也从未放弃的问题。我试图与内部IIS权限摆弄来解决这个问题,但是,没有骰子。

This site is an Azure based ASP.Net WebWorkerRole, it has never given problems before the upgrade to SVN 1.7. I tried fiddling with the internal IIS permissions to get around the problem, however, no dice.

我的环境


  • 的Visual Studio 2010旗舰版SP1 10.0.40219.1

  • AnkhSVN的2.3.10509(最新版本,支持SVN 1.7.1)

  • TortoiseSVN的1.7.1,建设22161 - 64位

  • 通过Azure的仿真环境中运行在调试模式

问题

是否有可能为SVN 1.7或任何在我的环境的工具,打破文件的权限,以便这些文件在一个ASP.Net网站变得无法使用?更重要的是,我该如何解决这个问题?

Is it possible for SVN 1.7 or any of the tools in my environment to break file permissions so that the files become unusable in an ASP.Net site? and more importantly, how do I fix this?

确切的文件权限错误倾倒出来是这样的:

The exact file permission error dumped out is this:

到路径'// //文件访问被拒绝。

Access to the path '//file//' is denied.

说明:在执行过程中发生未处理的异常
  当前Web请求。有关详情,请堆栈跟踪
  有关错误的信息以及它起源于code。

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

异常详细信息:System.UnauthorizedAccessException:访问
  路径'// //文件被拒绝。

Exception Details: System.UnauthorizedAccessException: Access to the path '//file//' is denied.

ASP.NET未被授权访问所请求的资源。考虑
  授予访问权限的资源添加到ASP.NET请求
  身份。 ASP.NET有一个基进程标识(通常
  {MACHINE} \\ ASPNET,在IIS 5或网络服务IIS 6和IIS 7,和
  在IIS 7.5所使用,如果配置的应用程序池标识)
  该应用程序没有模拟。如果该应用程序是
  通过模仿,身份会
  匿名用户(通常为IUSR_MACHINENAME)或经过身份验证
  请求用户。

ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6 and IIS 7, and the configured application pool identity on IIS 7.5) that is used if the application is not impersonating. If the application is impersonating via , the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.

要ASP.NET访问权限授予一个文件,右键单击该文件在资源管理器,
  选择属性,然后选择安全选项卡。点击添加来添加
  适当的用户或组。突出显示ASP.NET帐户,
  检查框所需的访问。

To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.

但一个干净的工作副本不会产生这个错误。比较两者的权限,似乎没有窃听共享(与IUSR和本地帐户),其中,作为破那些具有零共享工作拷贝,然而共享从未由用户改变。

but a clean working copy will not generate this error. comparing the permissions of the two, it seems the working copies that are not bugged are shared (with IUSR and the local account), where as the broken ones have zero sharing, yet the sharing is never change by the user.

推荐答案

我通过访问安全设置的网站文件夹,然后单击高级,然后更改权限的用户IIS_IUSRS解决了这个。我检查了替换为此对象的可继承权限的所有子对象的权限,并点击应用。

I solved this by accessing the security settings for the website folder and and clicking Advanced and then Change Permissions for the IIS_IUSRS user. I checked the "Replace all child object permissions with inheritable permissions from this object" and clicked apply.

在这之前,我给了IIS用户完全权限在结账的根目录中隐藏的临时文件夹中,但我不知道这是否与任何帮助。

Before that, I had given the IIS user full permissions to the hidden tmp folder in the root of the checkout, but I don't know if this helps with anything.

我不知道如果这是一个永久性的修复,但如果不是这样,你至少可以用它来重新在一个操作中的所有文件的权限。

I'm not sure if this is a permanent fix, but in case it is not, you can at least use it to reapply permissions for all the files in a single operation.

这篇关于AnkhSVN的突破ASP.Net共享权限与SVN 1.7的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆