IIS 8.5 提供 dll 以供下载而不是执行



问题:

当我通过 URL 访问(32 位)DLLhttp://localhost/somepath/some.dll?actionIIS 总是认为我想下载文件(文件大小为 0 字节)而不是执行 dll。

到目前为止我尝试过:

  • 在 ISAPI 和 CGI 限制中添加了此特定 DLL 的条目
  • 为 *.dll启用了"ISAPI-dll"处理程序,具有读取、脚本和执行功能权限。
  • IIS 用户/应用程序池标识对 dll 的物理位置具有完全访问权限
  • 应用程序
  • 池在经典模式下运行,并启用了 32 位应用程序
  • 我删除了 *.dll 的 MIME 类型条目

仍然有浏览器提示下载窗口。我现在的想法快用完了。我目前在Windows Server 2012 R2上使用IIS 8.5。

同一应用程序在 Windows 2000 SP4 上的 IIS 5 中运行没有问题。

任何帮助或想法不胜感激!

我知道这是一个老问题,但我发现网络浏览器实际上正在缓存文件下载。 我通过完全停止IIS并访问URL来证明这一点,但它仍然提示我下载文件。 然后我重新启动了 IIS,确认仍然存在相同的问题,从新的私有窗口尝试,DLL 运行而不是提示我下载。

简而言之,在配置完所有内容后,请尝试使用私人模式或其他 Web 浏览器。

由于Windows 200032-bit并且Windows Server 2012 R264-bit(正如您所说,您的DLL32-bit),我希望您的问题可能与此问题有关。


您的 DLL 是否已使用命令regsvr32 <youdll>在服务器端注册(从 windows 目录运行该命令)?

  • 您也可以尝试像这样设置 MIME 类型条目:

Extension>Type

.dll>Assembly(去掉星星,把点放在分机上)

  • 您可以尝试在 32 位模式下运行 IIS 主机进程

  • 您可以尝试创建 dll 的包装器,并在 COM+ 中托管此包装器 dll

最后,根据这个类似的问题,您可以参考此问题并仔细检查处理程序是否已正确设置。

最新更新