【问题标题】:ClearCase dynamic view contents not visible to ASP.NET web applicationClearCase 动态视图内容对 ASP.NET Web 应用程序不可见
【发布时间】:2011-01-07 17:39:37
【问题描述】:

我正在运行一个 asp.net 应用程序 (VS2008/.net 3.5),当在 VS 下运行它时,它运行良好。

它愉快地从网络共享中读取文件和目录。

我可以运行“cleartool startview [动态视图名称]” ok,我可以愉快地“cleartool mount [vob]”了。

但是,如果我尝试测试 vob 中是否存在文件,它就看不到它。

所以我尝试了一些不同的方法,我现在运行“cleartool ls -short -vob_only [filename]”来测试是否存在。

对于这两者,它在 VS2008 下运行良好,但在 IIS 部署后运行时将无法运行。

我有这个集合,并且用户对 ClearCase 有有效的访问权限。

有什么想法吗?

【问题讨论】:

    标签: asp.net clearcase cleartool


    【解决方案1】:

    如果您在开发过程中使用内置网络服务器 (Cassini),则网络服务器会像您一样运行并可以访问您的网络驱动器等。另一方面,IIS 使用不同的用户帐户并且不共享您的用户配置文件,包括您的 ClearCase 视图等。这可以解释您的问题。

    【讨论】:

    • 这是我最初的想法——但我确实可以访问只能通过使用与 ClearCase VOB 相同的组保护的域帐户才能访问的网络驱动器。因此,ClearCase 似乎在 windows 共享之外还有其他要求。
    • 如果我对您的理解正确,您有一个 ASP.NET 应用程序可以访问映射到网络驱动器号的动态 ClearCase 视图。由于 IIS 以不同的用户身份运行,它看不到这些网络驱动程序字母。 IIS 用户帐户可能有权访问 VOB,但您在登录时看到的映射对 IIS 不可见。
    【解决方案2】:

    我找到了问题并解决了这个问题。问题是 ClearCase 使用进程用户进行身份验证,而原始问题中提到的共享驱动器访问使用的是线程用户。

    原因是当访问 ClearCase 时会产生一个新进程——子进程总是使用父进程的安全上下文,而不是当前线程的。

    解决此问题的方法是在其自己的应用程序池中运行 Web 应用程序,该应用程序池以有权访问 ClearCase 的用户身份运行。权利的膨胀超出了真正必要的范围,但它确实起到了作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多