我有一个服务器应用程序DCOM / datasnap(delphi 7),一个客户端应用程序(通过httpsrvr.dll调用服务器)和一个Web服务DLL(delphi 7)。这个DLL是在asp.net Web应用程序上调用的。一切都可以在IIS6 web服务器上正常工作 但是当我想在IIS 7环境64(Windows Server 2008 RC2或Seven 64位)上安装时出现问题: 1。 http调用不起作用(在ISS7网站上定义httpsrvr.dll) 2。 asp.net(2.0)上的WS调用不起作用
我测试了Apache 2.2解决方案,链接客户端(exe delphi)服务器工作(cgi bin apache目录下的httpsrvr.dll),限制了oleVariant大小(超时) 但我无法设置我的DLL网络服务。该URL类似于'http://127.0.0.1/cgi-bin/WABridge.dll/soap/IWABridge(此URL是asp.net应用程序上的URL代理)。 此网址不适用于IE(或FF) - >内部错误 。如果我在FF上设置'http://127.0.0.1/cgi-bin/WABridge.dll/IWABridge,我看到wsdl定义页面但在asp.net网页上找不到错误404文件... TIA, 问候
答案 0 :(得分:2)
如何在IIS7.5(64位)上运行Asapi dll
创建应用程序池
更改属性:
允许Isapi和Cgi
创建应用程序
允许ISAPI DLL在应用程序中执行
我确实遇到过像
这样的问题模块DLL'C:\ Program Files \ Microsoft \ Exchange Server \ V14 \ ClientAccess \ Owa \ auth \ exppw.dll' 由于配置问题无法加载。 当前配置仅支持加载为x86处理器体系结构构建的映像。 数据字段包含错误编号。 要了解有关此问题的更多信息, 包括如何解决这种处理器架构不匹配错误, 见http://go.microsoft.com/fwlink/?LinkId=29349。
转到C:\ Windows \ System32 \ inetsrv \ config \ applicationHost.config
有变化
“add name =”kerbauth“image =”C:\ Program Files \ Microsoft \ Exchange Server \ V14 \ Bin \ kerbauth.dll“/>”
到
“add name =”kerbauth“image =”C:\ Program Files \ Microsoft \ Exchange Server \ V14 \ Bin \ kerbauth.dll“preCondition =”bitness64“/>”
我使用preCondition =“bitness64”
这是我的解决方案。出现这个错误是因为WebOffice已经启动了。
答案 1 :(得分:1)
我认为问题是Web Service DLL是32位DLL,64位应用程序无法加载(在本例中为IIS)。这里有两种可能的解决方案:(1)将DLL重新编译为64位DLL,你需要Delphi XE2。 (2)如果DLL是一个COM DLL,则可以使用Windows包装器将32位COM DLL转换为64位COM。
第一个选项是最好的,但如果您有第三方组件或库不兼容64位,则可能很难实现。第二个选项应该可以在没有任何重新编译的情况下工作,但是你的性能会受到一些影响。