无法从共享文件夹中读取文件

时间:2013-03-06 21:10:26

标签: c# asp.net iis-7

我正在尝试从Asp.net应用程序中的共享文件夹(ftp位置)访问文件。它从视觉工作室工作得很好。当我在IIS 7中部署相同时,我收到以下错误

“登录失败:未在此计算机上授予用户请求的登录类型。”

堆栈追踪:

  

[IOException:登录失败:用户未被授予   请求此计算机上的登录类型。 ]
  System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)   +9723522 System.IO.FileSystemEnumerableIterator 1.CommonInit() +245 System.IO.FileSystemEnumerableIterator 1..ctor(String path,String   originalUserPath,String searchPattern,SearchOption searchOption,   SearchResultHandler`1 resultHandler)+556
  System.IO.DirectoryInfo.InternalGetFiles(String searchPattern,   SearchOption searchOption)+64 System.IO.DirectoryInfo.GetFiles()   14

...

我的应用程序池正在NETWORKSERVICE模式下运行 IIS中的哪个用户需要授予访问此文件夹的权限?是IUSER还是NT AUTHORITY \ NETWORK SERVICE?如何识别IIS中当前正在运行的用户?

3 个答案:

答案 0 :(得分:2)

拒绝连接的原因很可能是组策略不允许运行IIS服务的用户访问该服务。

我不想给这些系统用户任何访问网络资源的权限。其他计算机也可能连接。

相反 - 让您的程序使用来宾帐户或您创建的其他帐户进行身份验证,并提供相应的权限。

我会说这将是一种更安全的方法。

答案 1 :(得分:0)

您可能尝试以交互方式登录到只能通过网络访问的计算机,反之亦然。

更改登录位置。尝试在本地(交互式)或远程(通过网络)登录,视情况而定。您可能想要询问管理计算机安全性的人员更改安全数据库,以便您可以本地或远程登录。

答案 2 :(得分:0)

进行调试 - 在异常时查看Environment.UserName。它将是发起请求的用户或匿名用户。

修复:如果是本地文件 - 授予权限可能没问题。如果远程并使用用户的模拟帐户 - 需要模拟其他具有远程计算机权限的帐户,因为您无法使用已冒充帐户来访问远程资源(" NTLM一跳" )。

注意:确保在允许访问文件时查看安全要求。