【问题标题】:How to Enable File System Access to Web Service?如何启用对 Web 服务的文件系统访问?
【发布时间】:2012-02-18 06:00:09
【问题描述】:

我有一个 C#/.Net 应用程序,它本质上是一个胖客户端数据收集应用程序。给定一个部件号,它会执行一些数据库查询(对外部 Orcale 数据库)、一些 Sharepoint 查询,并且还会搜索一些网络驱动器以获取相关信息。现在我正在尝试将其更改为面向服务的架构。 Web 服务现在驻留在服务器上,当被瘦客户端调用时,会执行 db 查询、sharepoint 查询和文件系统查询并返回结果。除了文件搜索之外,所有这些都运行良好。搜索结果是空的,我认为是因为 Web 服务在其自己的小虚拟文件系统中执行,并且无法查看网络驱动器来扫描它需要扫描的文件。

有人可以推荐正确的方法来允许对网络驱动器进行受保护的读取访问,以便服务可以获取所需的信息吗?我不希望将这些文件直接提供给瘦客户端,只是允许该服务对我们办公室的整个网络驱动器阵列进行后端访问。顺便说一下,Web 服务托管在 IIS 6、Windows Server 2003 上。

【问题讨论】:

  • 是的,活动目录正在使用中

标签: iis permissions iis-6 windows-server-2003


【解决方案1】:

根据运行 Web 服务的用户(我不记得 IIS6 的默认设置是什么,但怀疑它本质上是“网络服务”),如果它们是,它将无法读取网络共享担保。您最好的选择是为要运行的 Web 服务创建一个域帐户,并使用“Internet 信息服务 (IIS) 管理器”将应用程序池配置为以所述用户身份运行(注意:对于 IIS 6,您还需要添加本地用户组“IIS_WPG”的用户)。

一个小提示,您在整个问题中都提到了“网络驱动器”;您的服务不会共享您的任何映射网络驱动器,因此您需要为其提供完整的 UNC 路径(即 \\server\share 而不是 m:\)才能使其正常工作。

【讨论】:

  • 谢谢,这基本上回答了我的问题。我知道驱动器映射问题,所以我没有使用驱动器号。设置应用程序池身份似乎可行,但我希望客户端的凭据能够通过,因此用户只能读取他们允许的项目,而不是所有人的空白帐户。
  • @RandyGamage,很高兴它有帮助 =) pass-thru 凭证位是一个完全不同的鱼锅,总体上很容易解决。这里可能有一两个问题(和/或关于服务器故障)可以为您解决。
猜你喜欢
  • 1970-01-01
  • 2011-06-19
  • 2017-09-06
  • 2013-05-28
  • 1970-01-01
  • 2014-01-09
  • 2013-01-23
  • 1970-01-01
  • 2019-01-23
相关资源
最近更新 更多