【问题标题】:IIS Web Service calling COM dll that needs to access a unix file shareIIS Web 服务调用需要访问 unix 文件共享的 COM dll
【发布时间】:2009-04-14 14:35:10
【问题描述】:

我们有一个使用 COM 与一些 DLL 对话的 Web 服务。 DLL 函数所依赖的数据文件位于一个 unix 共享上,我们必须在初始化 COM 调用时指定数据文件的位置。我们在 Windows Server 2003 服务器上安装了 SFU 3.5。我们不能使用映射驱动器,因为 IIS 作为服务运行(或者我们可以吗?)。使用 UNC 似乎也不起作用:作为登录用户,它在您第一次输入该位置时失败,然后工作。我不知道如何从 IIS 的角度对其进行测试,因为我们从 DLL 得到的只是一个“无效的数据文件位置”错误。 unix 共享已打开 [无需用户/密码]。

也许问题根本不在于 IIS,而是 DLL 必须访问 UNC 或映射驱动器?毕竟,实际访问数据文件的是 DLL,而不是 IIS 或 Web 服务可执行文件。

我对 COM、DCOM、COM+ 知之甚少。拉起组件服务,我找不到我们正在使用的 COM 对象。 [但我可以使用“自动化对象”下的 MS OLEVIEW 找到它们]。

我有什么选择?

【问题讨论】:

    标签: web-services iis unix com


    【解决方案1】:

    Web 服务被加载到在 ASPNET 用户下运行的 aspnet_wp.exe 进程中。如果您有源代码并且使用调试信息(生成的.pdb 文件)编译代码,则可以附加到此过程并进行调试。

    您应该能够使用 UNC 文件共享,因为它们具有适当的访问限制。由于 Web 服务是在本地用户下运行的,因此您可能很难在文件服务器上设置访问限制,因为它不知道如何验证凭据。在这种情况下,您可以创建一个 COM+ 应用程序来托管您的 COM 组件并在单独的帐户下运行它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-05
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      相关资源
      最近更新 更多