FTP 之 550 permission denied

2023-05-16

做案子時﹐將WinInet.dll封裝﹐用C#調用﹐做了四個函數﹐分別是上傳﹐下載﹐刪除﹐清空文件夾。在開發環境中測試沒有任何問題﹐但拿到正式環境中卻出現"550 /c:/dh/MPF.dir/ABC"不存在的錯誤。但實際上的FTP Home 目錄是MPF.dir, 可是卻出現了/c:/dh/之類的東東。

經過排查﹐開發環境用的是IIS來做的FTP, 而正式環境用的是Server-U做FTP Server. 一定出在配置上﹐而且不是server的問題﹐是編程的問題。

跟蹤后﹐發現是在setCurrentDirectory發生錯誤。設斷點在這里﹐執行前發現當前目錄已經在"/c:/dh/", 原來的程式有一條指令是

ftpFunc.SetCurrentDirectory("/"); // set root folder, 因為"/c:/dh/"的確沒有權限﹐所有出錯誤﹐那為什么當前的default目錄是"/c:/dh"呢?原來server-U在配置當前用戶時有一個選項是: lock user in home directory. 如果沒有被勾選上﹐則表示當前用戶登錄成功后﹐他的home directory是物理路徑. 如果被勾上﹐則他的home directory是"/", 所以才會產生permission denied錯誤.

改正﹕在登錄的時候﹐就把當前用戶的home directory記錄下來﹐然后在那些函數設定目錄的時候調用:

ftpFunc.SetCurrentDirectory(rootPath); // set root folder就可以了

转载于:https://www.cnblogs.com/sdikerdong/archive/2008/08/25/1275966.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FTP 之 550 permission denied 的相关文章

  • 如何使用 IIS 为 Amazon EC2 服务器启用 FTP 被动模式

    我最初在使用 pagelime 时遇到了问题 它要求用户使用被动模式并且不支持主动模式 让主动模式工作起来非常简单 但让被动工作模式需要付出更多的努力 我正在使用带有 IIS 的 Amazon EC2 服务器以及 FTP 站点 以下链接最终
  • PHP ftp_put 返回“无法建立数据连接:连接被拒绝”

    我有一台通过 PHP 运行一些 FTP 的 PC 我知道它在 1 2 个月前还可以工作 但现在我返回它 发现该 PC 不再工作了 我知道我一直在使用电脑 但我想不出可能会发生什么变化 PHP 抛出错误消息读取 无法建立数据连接 连接被拒绝
  • 上传大文件到ftp C#

    我正在使用此代码将大文件上传到 ftp 站点 Code using FileStream fs new FileStream FileLoc FileMode Open FileAccess Read string ftpUrl strin
  • 让 FTP 在 Azure VM 上运行,克服 ftp 客户端上的“连接关闭”问题

    我正在努力连接到 Azure 中新 VM 上的 FTP 我从默认映像 Windows Server 2012 Datacenter 创建了一个新的虚拟机 并通过 RDP 连接到新的虚拟机中 然后 我启用了 Web 服务器 IIS 角色 包括
  • FtpWebRequest ListDirectory 不返回所有文件

    我正在尝试从包含大约 9000 个文件的 FTP 位置检索文件列表 但下面的代码总是只给出 97 个文件 在第 98 个文件的循环开始时 StreamReader Peek 变为 1 输出 test txt 始终仅包含前 97 个文件 就像
  • 将文件直接从 FTP 传输到 Azure 文件存储,无需将它们保存在本地内存或磁盘中

    我必须将文件从 FTP 传输到 Azure 文件存储 我的代码工作正常 但我正在内存中传输这些文件 这不是最佳实践 所以首先我将流读取到Byte内存中的数组 然后我将输出上传到 Azure 文件存储 现在我知道最好异步执行此操作 但我不知道
  • 如何使用GVIM编辑远程文件?

    我在 Ubuntu 9 10 上使用 GVIM 我正在寻找正确的方法来配置 GVIM 以便能够通过 ftp 等方式编辑远程文件 HTML PHP CSS 当我使用 e scp username remotehost path to file
  • 如何使用 php 检查 smtp 服务器是否正常工作

    我想使用 php 检查我的网站 smtp 是关闭还是开启 我尝试使用 fsockopen 连接到服务器上的端口 25 然后当 smtp 服务运行时它返回 true 这是使用 php 脚本测试 smtp 或 ftp 是否运行的最佳方法 您正在
  • 检查 FTP 服务器上的可用空间

    我正在运行一个构建脚本 其中三个可执行文件 每个 100mb 被上传到 FTP 服务器 由于 FTP 服务器空间问题 第一次上传可能会失败 因此我们的构建过程会失败 这意味着我必须从服务器释放一些空间并再次运行构建脚本 这是浪费时间 我想在
  • 在 FTP 上上传多个文件

    我是 Objective C 和 iOS 的新手 我正在使用 SimpleFTPSample 制作用于将文件上传和下载到 ftp 的测试应用程序 我需要在 ftp 上上传两个文件 但在 SimpleFTPSample 中您只能上传一个 那么
  • 如何使用 C# 从 FTP 服务器获取一系列文件

    我陷入了这样一个境地 我将通配符参数与 FtpWebRequest 对象一起使用 很糟糕 FtpWebRequest reqFTP FtpWebRequest FtpWebRequest Create new Uri ftp ftpServ
  • 使用.net 2.0 连接到 FTP 服务器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望连接到现有的 FTP 服务器 上传文件 等待服务器生成报告 然后将该报告下载回 VB NET 2
  • 使用 PHP 进行安全 FTP 连接

    我有一个带有登录详细信息的安全 FTP 服务器 我正在尝试使用 PHP 连接到该安全 FTP 服务器ftp ssl connect ftp connect and ftp login函数并将所有参数正确传递给该函数 但我惊讶地发现它没有连接
  • FTPWebRequest .NET 3.5 与 4

    我有一个应用程序可以与 IBM 大型机建立 FTP 连接 并且一切都工作正常 然后 我针对 NET 4 重新编译 主机不再接受该文件 并给出一条错误消息 指出该文件不存在 或者我没有该文件的权限 这是我用来发送文件的 Ftp FtpWebR
  • 如何使用java按上次更新时间对SFTP文件进行排序?

    I am having a set of text files in my FTP server 我想阅读今天之前上传的所有文件 其中我必须打印最后三个上传文件的属性 名称 上传时间 大小 现在我将能够打印 FTP 服务器中存在的文件的名称
  • 如何通过 Python 的请求使用 FTP

    是否可以使用requests与 FTP 站点交互的模块 requests获取 HTTP 页面非常方便 但当我尝试使用 FTP 站点时 我似乎遇到架构错误 我有什么遗漏的吗requests允许我执行 FTP 请求 还是不支持 对于像我一样得到
  • 使用 Python 连接从 FTP 检索文件

    我构建了这个简单的工具来暴力破解并连接到 ftp 服务器 import socket import ftplib from ftplib import FTP port 21 ip 192 168 1 108 file1 passwords
  • 使用 PowerShell 在 IIS FTP 站点上设置权限和设置

    我是 PowerShell 的初学者 我尝试了这个脚本并且运行良好 但我需要将 FTP 授权规则更改为 所有用户 读 写 并将 FTP 用户隔离 更改为 用户名目录 NEEDED FOR IIS CMDLETS Import Module
  • 如何递归列出远程 FTP 的目录内容

    从远程 UNIX FTP 服务器下载文件后 您想要验证是否已正确下载所有文件 您至少会在 Windows 命令提示符中获得类似于 dir s 命令的信息 FTP 客户端在 Windows 上运行 遗憾的是这是为 Unix Linux 用户编
  • JSch中如何设置文件类型和文件传输模式?

    我使用 Apache Common NetFTPClient并设置了我的ftpClient在上传文件之前使用如下所示的方法 ftpClient setFileType FTP BINARY FILE TYPE ftpClient setFi

随机推荐