【问题标题】:Classic ASP + IIS 7 Writing a file to a network drive经典 ASP + IIS 7 将文件写入网络驱动器
【发布时间】:2012-10-19 03:41:02
【问题描述】:

我在 Windows 2008 IIS 7 上安装了 Classic ASP 2 网站。 website1.com 和 website2.com。两者都从一个文件夹提供同一个网站:C:\Webs\website\

website1.com 已运营 6 年,在应用程序中可以将文件写入网络共享; \wdc\SharedFiles\assets\docs\ 由于它多年来一直在读取和写入文件,因此设置了所有适当的权限。

我最近添加了 website2.com。该网站从同一个目录中提供服务。我需要它能够写入同一个共享。问题是,website2.com 得到“写入文件失败”。和“权限被拒绝”错误。

这怎么可能?

我什至模拟了一个简单的测试。同样的错误。:

  Dim fso, objFile
  Set fso=Server.CreateObject("Scripting.FileSystemObject")
  Set objFile=fso.CreateTextFile("\\wdc\SharedFiles\assets\docs\test.txt")
  objFile.WriteLine("hello this is test")
  objFile.Close
  Set objFile=Nothing
  Set fso=Nothing

有什么想法吗?我正在拔头发。

【问题讨论】:

  • 您是否尝试过查看 `\\wdc\SharedFiles\assets\docs` 目录的权限?也许有一个特殊的用户帐户设置或什么的。
  • windows 2008 .... IIS 6???,我几乎可以肯定它是 IIS 7
  • Rafael,你不相信一些商店正在经营的老废话。

标签: iis asp-classic


【解决方案1】:

这是我自己想出来的。所以其他人可以受益,这里是:

  1. 在 IIS 中转到网站 (website2.com) 节点,然后选择“身份验证”。
  2. 确保启用“匿名身份验证”并将其设置为用户。
  3. 然后使用 Explorer 授予该用户对共享的读写访问权限。

【讨论】:

  • 很高兴找到@xweb。如果可能的话,我会给你+1000。在过去的 24 小时内,我也确实拔过头发。
  • 很高兴能帮上忙。找到该解决方案是一个耗时的过程。
【解决方案2】:

不确定这是否会有所作为。实际上,我的代码中唯一的区别是我使用 server.mapPath 来指定路径。

path = Server.MapPath ("\")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile(path & "\" & txtFileName, 2) '2 = for Writing
f.Write(txtFileContents)
f.close
set f=nothing

【讨论】:

  • 此代码不是写入网络驱动器,而是写入同一服务器上的 Web 根目录(默认为“C:\inetpub\wwwroot”)。在此处查看示例:w3schools.com/asp/met_mappath.asp
猜你喜欢
  • 2011-02-24
  • 2019-05-15
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多