当我尝试不是从开发环境发出请求时出错

时间:2016-10-04 09:15:43

标签: c# asp.net sharepoint

所以我基本上有sharepoint页面和按钮来执行此复制操作

System.IO.File.Copy("\\\\server.name\\folder\\folder\\123.txt", Server.MapPath("\\\\WebserverTempFileCopy\\123.txt"), true);

问题是,如果我从开发环境中这样做,它可以正常工作,但如果我尝试从外面执行此操作403 FORBIDDEN错误弹出,基本上它无法达到" \\ server.name \文件夹\文件夹\ 123.txt"由于某种原因,我不知道为什么。

请求是由Web服务器发出的,对吧?但是当我从开发环境尝试这个时,它可以访问,即使外部用户提出请求他也可以访问该文件服务器,所以我不知道在哪里搜索错误。

我是asp.net和sharepoint的新手,所以也许这是一个简单而愚蠢的问题,但无论如何都要感谢。

2 个答案:

答案 0 :(得分:1)

您可能使用IIS服务器来托管网站。如果是这样,您的应用程序在应用程序池中工应用程序池具有其工作中的标识(用户)。该错误显示,现在正在使用IIS池的用户没有该文件的权限。

答案 1 :(得分:0)

好的,所以主要问题是服务器管理员将文件服务器的访问权限设置为运行不同服务器的错误身份。我花了一些时间才弄明白。

但起初也没有解决问题。

我找到了一种简单的方法来运行那些将文件服务器请求作为应用程序池标识的代码部分。

SPSecurity.RunWithElevatedPrivileges(delegate()
                {
              //Code here
                });