代码之家  ›  专栏  ›  技术社区  ›  Brandon

为什么发布的网站引用了我的机器?

  •  0
  • Brandon  · 技术社区  · 14 年前

    protected void WithImpersonation(ExecuteUnderImpersonation action)
    {
        using(WindowsImpersonationContext context = Request.LogonUserIdentity.Impersonate())
        {
            action();
        }
    }
    

    但是,当其他人尝试提交此页面时,它会抛出一个错误

    无法将配置保存到文件“C:\Inetpub\wwwroot\SomeWebsite\web.config”。

    查看StackTrace,我看到以下条目:

    在 SomeClassLibrary.SomeClass.WithImpersonation(ExecuteUnderImpersonation 来自我的 机器

    这似乎只发生在一个特定页面上,即使多个页面调用相同的方法。

    如果我已经将网站(以可更新模式)发布到预编译Web文件夹,并在bin目录中使用适当的引用发布了它,为什么它会在我的计算机上查找该类?这个错误甚至没有意义,如果它在寻找一个服务器上不存在的文件,他们不应该得到一个非常不同的错误吗?

    我把同一个网站,并把它放在我的一个服务器连接到域。如果我尝试从作为我自己登录的服务器或在我的机器上运行同一页面,我不会收到此错误。

    一位同事之前说过,他们有时也会收到这个错误,但这是错误的 最终会消失 . 我们无法查明问题的原因,但如果同一个网站在其他人的计算机上从SVN中检出、发布,然后发送出去,则根本不会发生此错误。

    你知道发生了什么事吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Wim    14 年前

    据我所知,这是程序调试数据库(.PDB文件)的一部分。你认为它是在引用你的机器的那部分就是。

    发生错误的原因可能是其他用户没有设置正确的ACL以保存到web文件夹。

        2
  •  1
  •   tvanfosson    14 年前

    它只是编译应用程序时源文件的路径。我确信你的错误与此无关。我怀疑您的问题是,虽然您可能有权修改该文件,但大多数用户没有。检查文件/目录的权限,查看是否需要打开它。也许这种情况并不总是发生的原因是,文件只需要更新一次,最终有人用正确的凭据访问它,然后就可以了 固定的