我正在尝试从Asp.net应用程序中的共享文件夹(ftp位置)访问文件。它从视觉工作室工作得很好。当我在IIS 7中部署相同时,我收到以下错误
“登录失败:未在此计算机上授予用户请求的登录类型。”
堆栈追踪:
[IOException:登录失败:用户未被授予 请求此计算机上的登录类型。 ]
System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath) +9723522 System.IO.FileSystemEnumerableIterator1.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中当前正在运行的用户?
答案 0 :(得分:2)
拒绝连接的原因很可能是组策略不允许运行IIS服务的用户访问该服务。
我不想给这些系统用户任何访问网络资源的权限。其他计算机也可能连接。
相反 - 让您的程序使用来宾帐户或您创建的其他帐户进行身份验证,并提供相应的权限。
我会说这将是一种更安全的方法。
答案 1 :(得分:0)
您可能尝试以交互方式登录到只能通过网络访问的计算机,反之亦然。
更改登录位置。尝试在本地(交互式)或远程(通过网络)登录,视情况而定。您可能想要询问管理计算机安全性的人员更改安全数据库,以便您可以本地或远程登录。
答案 2 :(得分:0)
进行调试 - 在异常时查看Environment.UserName。它将是发起请求的用户或匿名用户。
修复:如果是本地文件 - 授予权限可能没问题。如果远程并使用用户的模拟帐户 - 需要模拟其他具有远程计算机权限的帐户,因为您无法使用已冒充帐户来访问远程资源(" NTLM一跳" )。
注意:确保在允许访问文件时查看安全要求。