【问题标题】:Cannot open a file using a Powerbuilder .NET web service无法使用 Powerbuilder .NET Web 服务打开文件
【发布时间】:2013-01-21 23:55:09
【问题描述】:

我正在使用 PB 11.5 部署一个 .NET Web 服务,我试图在使用它之前在服务器上对其进行测试。此 WS 将数据库中的 blob 加载到 Image 文件中,并将其保存在本地。稍后我将使用第三方工具进一步将此文件操作为 pdf。这个过程在我的本地机器上工作得很好,但是在文件的打开命令期间似乎得到了堆栈:

li_FileNum = FileOpen(is_Openfilename[li_fileindex], StreamMode!, Write!, Shared!, Replace!) 

我得到了 -1 的回报。从数据库加载 blob 是成功的,我可以看到它的大小返回。 我不确定这是权限问题还是其他问题。我试图打开文件的文件夹为每个人设置了权限。 Web 服务器正在运行带有 Windows Server 2008 R2 的 IIS 7.0。

我正在使用 IE 测试页面测试 WS 并呈现我需要传递初始值的函数。

有什么想法吗?

提前致谢。

【问题讨论】:

  • 您是否检查过is_Openfilename[li_fileindex] 是文件的有效路径?
  • 是的。路径是正确的。你的回复让我思考,我添加了一个调试检查,看看我是否可以在那个目录中找到一个文件。 FileExist(fileName) 在我手动将文件放入该目录后返回 False。我不确定发生了什么。
  • 这可能是 ACL 问题。您能否检查拥有正在运行的进程的配置文件是否可以像您一样访问该文件夹?
  • 运行此 Web 服务的配置文件/身份具有管理员权限。
  • 使用进程监视器 (SysInternals) 查看文件活动发生的位置。这可能是类比的延伸,但 Web 窗体将文件访问映射到特定于会话的目录。这可能是您的文件请求发生的情况。

标签: xml web-services iis-7 powerbuilder


【解决方案1】:

在一位值得信赖的同事的帮助下,我在周五下午晚些时候解决了这个问题。我们将文件夹权限添加到 Web 服务器上的组 IIS_IUSRS 和 IUSR。我终于能够在服务器上打开文件,并且可以使用应用程序文件夹上的虚拟路径更深入地找到它。我将我的打开文件代码更改为不使用路径:li_FileNum = FileOpen(is_Openfilename[li_fileindex], StreamMode!, Write!, Shared!, Replace!) 并且能够在以下位置找到文件:From application Folder \ws_ios_transfer_root\file\ session_网络服务_\c

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-14
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多