0

我正在开发一个使用 ISAPI dll 文件/Web 服务生成文件的项目。我以前使用硬编码的位置来存储文件的位置,效果很好,我现在尝试将它与存储在指定文本文件中的位置交换。

我遇到的问题是,它似乎将 IIS 工作进程 'C:\Windows\SysWOW64\inetsrv' 的当前路径附加到我存储在文本文件中的位置信息的开头。我不确定这是否取决于我的代码或 IIS 7 服务器设置?谁能指出我正确的方向?

非常感谢。

4

2 回答 2

0

我认为你必须在MSDN中使用 SetDllDirectory

调用 SetDllDirectory 后,标准 DLL 搜索路径为:

  1. 加载应用程序的目录。
  2. lpPathName 参数指定的目录。
  3. 系统目录。使用GetSystemDirectory函数获取该目录的路径。该目录的名称为System32。
  4. 16 位系统目录。没有函数获取这个目录的路径,但是被搜索了。此目录的名称是 System.
  5. Windows 目录。使用 GetWindowsDirectory 函数获取该目录的路径。
  6. PATH 环境变量中列出的目录。
于 2013-01-16T18:21:37.623 回答
0

这不是一个直接的答案,但可能会让您朝着正确的方向前进。在http://xxm.sf.net/项目上工作,我发现您可以从 ISAPI dll中设置当前目录(用于进程)。看来inetinfo.exe/dllhost.exe/w3wp.exe(或IIS用来调用您的ISAPI的任何其他进程)并不介意并继续正常运行。

于 2013-01-16T20:14:15.280 回答