41、Web Connection开发常见错误及解决方案

Web Connection开发常见错误及解决方案

Web应用程序开发是一个复杂的领域,无论选择何种开发工具,都有很多需要学习的地方。在Web Connection开发过程中,开发者常常会遇到一些常见的错误。下面将对这些错误进行分类整理,并给出相应的症状、原因和解决方案。

1. 错误分类

Web Connection开发中常见的错误可分为以下七类:
- 安装与设置问题
- Visual FoxPro开发问题
- 脚本和模板特定问题
- 操作问题
- COM和基于文件的消息传递问题
- 调试问题
- 电子邮件和客户端工具问题

2. 安装与设置问题
症状 原因 解决方案
安装新版本后,仍显示“共享软件”消息 共享软件版本的特定文件仍保留在磁盘上 删除WConnect.APP文件
安装新版本后,之前对Web Connection默认行为的更改不再被识别 直接更改了Web Connection框架文件,新版本覆盖了这些更改 不要直接更改框架,使用创建子类的技术
安装新版本后,之前的框架子类不再被识别 对WCONNECT.H的更改被新版本覆盖 将所有覆盖信息放在WCONNECT_OVERRIDE.H文件中
安装新版本后,应用程序不再响应Web请求 解压新版本后运行设置程序,至少有一个设置值与之前不同 确定更改的设置并恢复正确值
首次运行基本Web Connection示例应用程序时,浏览器显示“访问被拒绝”错误 匿名用户对临时目录没有完全访问权限 授予匿名用户(iusr_ )对应用程序临时目录的完全访问权限

以下是安装与设置问题的处理流程:

graph TD;
    A[安装新版本] --> B{是否有问题};
    B -- 是 --> C{具体症状};
    C -- 共享软件消息 --> D[删除WConnect.APP文件];
    C -- 默认行为更改不识别 --> E[创建子类];
    C -- 框架子类不识别 --> F[使用WCONNECT_OVERRIDE.H文件];
    C -- 应用程序不响应请求 --> G[恢复设置值];
    C -- 访问被拒绝 --> H[授予匿名用户权限];
    B -- 否 --> I[正常使用];
3. Visual FoxPro开发问题
症状 原因 解决方案
使用共享软件版本构建项目时遇到错误 共享软件版本无法创建可执行文件 升级到完整版,或从命令窗口运行应用程序
某些表单变量被截断、不正确或丢失 表单使用了HTTP的GET方法而非POST方法 使用POST方法,并使用Form()方法读取变量
一个用户似乎获取了另一个用户的结果、权限或会话设置 使用了公共或应用程序范围的私有变量来记录特定用户会话信息 理解Web应用的无状态性质,避免使用应用程序范围的变量
使用Web Connection管理控制台创建新项目后,找不到MyProcess.PRG文件 由于文件冲突,向导未添加某些文件 关闭管理控制台,从VFP项目管理器重新构建项目
在开发机器上构建并执行EXE文件时应用程序正常,但从命令窗口运行时不正常 主程序与项目和EXE文件位于不同文件夹 将主程序移动到与项目相同的文件夹

以下是Visual FoxPro开发问题的处理流程:

graph TD;
    A[进行Visual FoxPro开发] --> B{是否有问题};
    B -- 是 --> C{具体症状};
    C -- 构建项目错误 --> D[升级版本或从命令窗口运行];
    C -- 表单变量问题 --> E[使用POST方法和Form()方法];
    C -- 用户信息混淆 --> F[避免使用应用范围变量];
    C -- 找不到文件 --> G[重新构建项目];
    C -- 运行异常 --> H[移动主程序文件夹];
    B -- 否 --> I[正常开发];
4. 脚本和模板问题
症状 原因 解决方案
在模板中使用Response.Write()语句,结果出现在输出开头而非预期位置 模板不支持Response.Write(),仅脚本支持 在代码块末尾返回字符串
脚本/模板中的表达式似乎未被求值 应用程序中设置了SET EXACT ON 避免设置EXACT为ON,必要时在使用后立即关闭
使用模板或脚本时,自定义HTTP头被忽略 ExpandScript()和ExpandTemplate()方法会创建自己的头,除非显式传递参数 将头对象作为第二个参数传递给方法
遇到变量未找到等类似错误 变量为LOCAL而非PRIVATE,或在代码中声明过晚 将代码块中的变量声明为PRIVATE,并在控制结构开始前声明

以下是脚本和模板问题的处理流程:

graph TD;
    A[使用脚本和模板] --> B{是否有问题};
    B -- 是 --> C{具体症状};
    C -- Response.Write()位置问题 --> D[返回字符串];
    C -- 表达式未求值 --> E[避免设置SET EXACT ON];
    C -- 自定义头被忽略 --> F[传递头对象参数];
    C -- 变量未找到 --> G[声明为PRIVATE并提前声明];
    B -- 否 --> H[正常使用];
5. 操作问题
症状 原因 解决方案
浏览器中显示HTTP头(如以HTTP 1.1 200 OK开头的文本) 响应中发送了两个HTTP头 避免重复调用插入完整头的方法
在Windows 95或Windows 98上,脚本映射不能正常工作 PWS对脚本映射支持不佳,有多个映射时易出问题,添加映射后需重启 移除不需要的脚本映射,将创建的映射移到列表顶部,更改后重启机器
Cookie消失或每次访问都写入新Cookie 代码使用AddCookie()时未考虑客户端已有Cookie,或客户端不接受Cookie 检查并修正代码,考虑使用InitSession()方法;若客户端不接受,可尝试说服或采用“车牌”方法
用户接收不到Cookie,导致重复登录表单和空会话变量 尝试将HTTP重定向与发送Cookie结合,或部分用户浏览器设置不接受Cookie 避免在同一响应中重定向和发送Cookie;对于不接受的用户,参考上一问题解决方案
客户端正确输入用户名和密码后仍不断收到登录表单 用户认证存储不正确或过期过早,客户端可能关闭了Cookie 参考上一问题解决方案
客户端收到“文件下载”对话框,提示下载WC.DLL IIS中虚拟目录的执行权限设置不正确 将执行权限设置为“仅脚本”或“脚本和可执行文件”
应用程序间歇性崩溃,出现C0000005错误 索引或备注字段损坏 尝试隔离问题,修复损坏源,必要时从备份恢复
安装证书并切换到HTTPS URL后,应用程序未收到访问请求 IIS未设置监听443端口的HTTPS流量 在IIS网站属性的“网站”选项卡中指定监听443端口
没有访问请求被处理,浏览器长时间延迟后显示超时消息 WC.INI和应用程序INI文件中的临时文件路径或模板设置不匹配 确保两个文件中的路径和模板设置一致
浏览器无法连接到开发机器上的应用程序,即使已安装本地Web服务器 TCP/IP未加载,或使用的Microsoft Internet Explorer版本有bug 对于TCP/IP未加载,可尝试拨号加载;对于IE bug,可打补丁或升级
修改WC.INI中的AdminUser设置后未生效 WC.DLL仅允许AdminUser设置中的用户进行管理更改,更改后需重启IIS 手动修改WC.INI文件,停止并重启IIS
返回PDF文件时用户看到空白屏幕 Microsoft Internet Explorer兼容性问题 将文件写入磁盘,返回包含文件链接的HTML响应;或检查浏览器问题并建议用户升级
用户反复收到认证对话框,输入有效网络用户ID和密码后仍无法访问应用程序 未启用基本(或“明文”)认证 至少为虚拟目录启用基本认证
运行Web Connection COM服务器时,Internet Information Server管理控制台(MMC)锁定 未诊断出的bug,推测与IIS管理界面或Visual FoxPro COM服务器有关 运行IIS重启程序(IISReset.EXE)

以下是操作问题的处理流程:

graph TD;
    A[应用程序运行] --> B{是否有问题};
    B -- 是 --> C{具体症状};
    C -- 显示HTTP头 --> D[避免重复调用头方法];
    C -- 脚本映射问题 --> E[调整映射并重启];
    C -- Cookie问题 --> F[检查代码或采用其他方法];
    C -- 接收不到Cookie --> G[避免重定向和发送结合或参考上方案];
    C -- 重复登录 --> H[参考上方案];
    C -- 下载WC.DLL --> I[设置执行权限];
    C -- 崩溃错误 --> J[修复损坏或恢复备份];
    C -- HTTPS无响应 --> K[设置监听端口];
    C -- 无访问处理 --> L[确保设置一致];
    C -- 无法连接 --> M[加载TCP/IP或升级IE];
    C -- AdminUser未生效 --> N[修改文件并重启IIS];
    C -- PDF空白 --> O[写入磁盘并返回链接或升级浏览器];
    C -- 认证问题 --> P[启用基本认证];
    C -- MMC锁定 --> Q[运行重启程序];
    B -- 否 --> R[正常运行];
6. COM和基于文件的消息传递问题
症状 原因 解决方案
在基于文件模式下运行时,浏览器中收到COM调用错误消息 WC.INI中的设置被更改为Mechanism=Automation 将设置改回Mechanism=File,检查AdminUser设置
在COM模式下运行时,遇到众多Web服务器问题,包括参数错误、访问被拒绝和COM对象调用错误等,且COM服务器加载后无法卸载 虚拟目录未设置为“低”隔离模式 使用IIS将每个Web Connection虚拟目录的应用程序隔离级别设置为“低”
运行多个服务器实例时遇到问题,且每个实例的Windows进程ID相同 Visual FoxPro项目构建时服务器实例化设置为“多用途” 将可执行文件构建为“单用途”,在项目管理器中更改设置并重新构建
切换到COM操作后,应用程序行为略有不同,似乎忽略了环境设置或在基于文件模式下有效的其他代码 重要代码放在了主程序中第一个DEFINE CLASS语句之前的初始代码中 重新调整代码位置

以下是COM和基于文件的消息传递问题的处理流程:

graph TD;
    A[进行COM或文件模式操作] --> B{是否有问题};
    B -- 是 --> C{具体症状};
    C -- COM调用错误 --> D[更改设置并检查AdminUser];
    C -- Web服务器问题 --> E[设置低隔离模式];
    C -- 多实例问题 --> F[构建为单用途并重建];
    C -- 行为异常 --> G[调整代码位置];
    B -- 否 --> H[正常操作];

综上所述,在Web Connection开发过程中,会遇到各种各样的问题,但只要我们了解这些常见问题的症状、原因和解决方案,就能更高效地进行开发和调试,确保应用程序的稳定运行。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值