Web services 调用需要访问unix文件共享的COM dll的IIS Web服务

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

我们有一个web服务,它使用COM与一些DLL进行通信。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服务被加载到aspnet_wp.exe进程中,该进程在aspnet user下运行。如果您有源代码,并且代码是使用调试信息(.pdb文件)编译的,则可以附加到此进程并进行调试

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