我有一个 C# 程序在 XP Pro SP3 上的 IIS 中作为 CGI 应用程序运行。在我引用库程序集类并在程序代码中使用它之前,它运行良好。如果我手动运行 CGI 程序,它会加载并执行。但是,当它由 IIS 运行时,尽管引用的程序集与父可执行文件位于同一目录中,但它无法绑定。这是我得到的绑定日志:
=== 预绑定状态信息 === 日志:用户 = STEVIENEW\IUSR_STEVIENEW 日志:DisplayName = VOEvent,版本=3.0.7.0,文化=中性,PublicKeyToken=null (完全指定) 日志:Appbase = file://?/C:/Documents and Settings/Robert B. Denny/My Documents/iis/vomsgtst/ 日志:初始 PrivatePath = NULL 调用程序集:MsgChkCGI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null。 === LOG:此绑定在默认加载上下文中开始。 LOG:未找到应用程序配置文件。 LOG:使用来自 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config 的机器配置文件。 LOG:此时未将策略应用于引用(私有、自定义、部分或基于位置的程序集绑定)。 日志:正在尝试下载新的 URL 文件://?/C:/Documents and Settings/Robert B. Denny/My Documents/iis/vomsgtst/VOEvent.DLL。 日志:正在尝试下载新的 URL 文件://?/C:/Documents and Settings/Robert B. Denny/My Documents/iis/vomsgtst/VOEvent/VOEvent.DLL。 日志:正在尝试下载新的 URL 文件://?/C:/Documents and Settings/Robert B. Denny/My Documents/iis/vomsgtst/VOEvent.EXE。 日志:正在尝试下载新 URL 文件://?/C:/Documents and Settings/Robert B. Denny/My Documents/iis/vomsgtst/VOEvent/VOEvent.EXE。
Appbase 是正确的(尽管 URI 中的“?”是什么????也许这是一个提示)。程序集 voevent.dll 绝对与 MsgChkCGI.exe 位于同一目录(Appbase!)中。如果我只是双击 exe,它会正确启动(并且由于缺少 CGI 环境变量而出现错误,但这是意料之中的)。
有谁知道发生了什么?