ActiveX DLL无法在IIS 8.5上运行

时间:2015-05-11 15:34:09

标签: iis vbscript asp-classic vb6 activex

ActiveX dll无法在IIS 8.5上运行

我们有一个经典的ASP应用程序,它使用ActiveX dll来动态生成图像。它正在使用IIS6在Window 2003上工作。但我们正在将其迁移到Windows 2012和IIS 8.5。 DLL在服务器上注册,配置为在其自己的应用程序池(无管理代码,经典管道模式)下运行。它的虚拟目录配置为作为应用程序运行,并具有* .dll的处理程序映射,以指向具有执行访问权限的所有谓词的DLL,这与IIS6的配置相同。

呈现HTML调用DLL的ASP代码如下所示:

<%dim SpokeData
dim JobName
dim NumOfExperts
dim ThisDirNo
dim ThisSel
dim PAPIType
dim JobType
dim SpokeDataShort
SpokeData = trim(Request.QueryString("Data"))
JobName = trim(Request.QueryString("JobName"))
NumOfExperts = trim(Request.QueryString("Exp"))
PAPIType = trim(Request.QueryString("PAPIType"))
JobType = trim(Request.QueryString("JobType"))
CalcDate = trim(Request.QueryString("Date"))
For ScaleNo = 1 to 20
    ThisSel = Mid(SpokeData,(ScaleNo*2),1)
    ThisDirNo = Mid(SpokeData,(ScaleNo*2)-1,1)
    If ThisSel = "1" then SpokeDataShort = SpokeDataShort & ThisDirNo else SpokeDataShort = SpokeDataShort & "0"

Next
Response.Write("<div id='Wheel'><img style='margin-left:20px' src='http://www.example.com/jpwheel/jpwheel.dll?Handler=Render&nori=" & PAPIType & "&dir=" & SpokeDataShort & "&" & Now & "'></div>")
%>

然后HTML看起来像这样:<img src="http://www.example.com/jpwheel/jpwheel.dll?Handler=Render&amp;nori=N&amp;dir=55555050555000000000&amp;11/05/2015 16:05:24" style="margin-left:20px">如果我尝试直接下载它,我会收到500错误(不幸的是没有错误日志)。

它正在IIS6上运行,而不是在IIS8.5上运行。任何人都可以将ActiveX服务器端DLL迁移到IIS8.5吗?我还没做的一件事是检查DLL的依赖关系,有人可以为此推荐一个工具吗?我猜测Windows 2003即将结束,很多人都遇到了这样的问题。

1 个答案:

答案 0 :(得分:2)

问题是由使用不正确的处理程序映射引起的。我把它设置为脚本映射。它需要是一个模块映射,其中包含以下详细信息:

  • 请求路径:* .dll
  • 可执行文件:jpwheel.dll的路径
  • 模块:IsapiModule
  • 姓名:jpwheel

请求限制:所有动词,需要访问:脚本

功能权限:读取,脚本,执行

所以它现在正在运作。