server - 从 Delphi-7 中的客户端调用时,无法在 Windows Server 2012 中执行 asp-classic 脚本
问题描述
我已将在 Windows Server 2008 上运行的应用程序迁移到 Windows Server 2012 上的应用程序。
它是一个桌面应用程序,它对服务器的脚本进行多次调用.asp
,并从中调用 SQL Server 中的存储过程。
从客户端计算机进行调用的程序是在 Delphi 7 中制作的 DLL。
此挂载在 Windows Server 2008 上的计算机上正常工作。
但是现在我得出的结论是脚本没有执行,.asp
因为我没有收到来自服务器的响应,尽管我在.log
文件中看到它们被调用并且具有正确的参数。
以下行来自 .log 文件
2018-11-27 15:51:20 nn.nnn.nnn.223 GET /soporte/lnk_mnto.asp COD=MFM0010010LRN&APP=MF&cachedisable=FNFAJDNHFIDLELA 80 - nn.nnn.nnn.nnn HTTP/1.0 Mozilla/4.0+(兼容; +突触)- www.ikutgroup.com 301 0 0 569 205 62 2018-11-27 15:52:36 nn.nnn.nn.223 GET /soporte/lnk_mnto.asp COD=MNF5369168SB7&APP=MN&cachedisable=IHOLGLANIEKMBJE 80 - 89.128.30.175 HTTP/1.0 Mozilla/4.0+(兼容;+Synapse)- www.ikutgroup.com 301 0 0 569 205 46
可以看到,COD 和 APP 是脚本lnk_mnto.asp
需要的参数,来自 Delphi DLL 的调用注册在日志文件中,但是 DLL 没有收到应答。
但是,如果我通过这个调用直接从浏览器调用 asp 脚本:
http://xxxxxxxx.com/soporte/lnk_mnto.asp?COD=MNF5369168SB7&APP=MN&cachedisable=HNIKNFNMEJMFBDH
我收到正确的答案。
我知道在第一种情况下,脚本没有执行,因为我在它的第一条指令中添加了记录数据库中的一行,并且没有发生这种情况。相反,当从浏览器调用脚本时,该行记录在数据库的表中。
我认为这是权限问题,但我不知道应该看什么来纠正它。
你有什么想法可以让我尝试解决我的问题吗?
解决方案
不。是来自客户端计算机的dll调用服务器中的.asp脚本。
但最后我在 Delphi 中制作了一个新的测试程序,复制了在 .ASP 中调用脚本的指令,当我运行它时,我看到它返回了以下类型的错误:
<.head><.title>文档已移动<./title><./head> <.body><.h1>对象已移动<./h1>此文档可在 <.a HREF="http:// myweb.com/soporte/lnk_mnto?COD=MNF873455SB7&APP=MN&cachedisable=GNDECGBLJBFHBHA">这里<./a>
然后我在网上查找有关此错误消息的信息,我发现以下页面解决了我的问题
简而言之,它表示在页面的 Plesk 配置中,您必须在问题中输入“无”:“首选域”。
- 登录到 plesk 控制面板
- 点击网站和域名
- 点击主机设置
- 从“首选域”中选择“无”下拉列表框</li>
- 点击确定
现在我的问题解决了。
非常感谢大家。
推荐阅读
- continuous-integration - 如何通过在磁盘上创建报告文件来生成 github 注释?
- data-structures - 表面网格三角形:查询空间内
- c# - 分页在 asp 中继器中无法正常工作
- python-3.x - 在 python 3 中优化字典键生成/查找
- javascript - 动态导入中的字符 *
- python - (Mac OSX Catalina) 为什么我不能单击 Tkinter 中的按钮并使其变为蓝色?
- java - 为什么 Java 8 和 Java 11 之间已解决的依赖关系不同?
- c++ - 具有自动参数的函数使用 GCC 编译,但不使用 Visual C++ 编译
- c# - 身份服务器出现“错误”:“invalid_scope”
- r - R数据框:根据另一列中的值更改1列中的值