做完了工作以来的第一个项目 总结了一下在这个项目中遇到的问题 备份一下

做完了工作以来的第一个项目 总结了一下在这个项目中遇到的问题 备份一下_第1张图片

      图1_2

项目类型:WCF  项目日期:7月1日——8月20日  项目目的:维护与更新,将web的软件重新包装为winfrom软件,使软件客户端与服务端分离,并详细的划分了各模块,以便达到易维护,已更新,不干涉平常的使用。

期间发生过很多的问题1.首先是在开始的服务端信息发布时的命名规则

做完了工作以来的第一个项目 总结了一下在这个项目中遇到的问题 备份一下_第2张图片

程序集的名称与默认的命名空间与之后的项目总和息息相关生成路径的固定位置设置使你的程序不会产生逻辑上的错误,程序集会出现一些很有意思的东西 如果程序集的公司名不改的话会出来生成的bll是微软的 而不是你们公司的情况如图1_2

2.程序集合体的应用:在wcf中int,Datatable是不能直接发布的 只有将他们分别转换为string和DataSet类型才能通过契约直接由服务器发布,不然会出现错误

--------------------------
异常消息
---------------------------
请求因 HTTP 状态 400 失败: Bad Request。
---------------------------
确定  
---------------------------

当然这个错误在这个模式中出现的次数和频繁程度会超出你的想象、这个错误一般是由粗心造成的 后面会有详细的解决方法

服务端的问题大概的也就是这么两个了。

客户端与服务端连接时出的错误才最让人头疼了。。下面是再写客户端的时候出现的一些错误 有些事经过半天或者一天的搜索或者请教了高手之后才解决,用高手的话——这都不应该出现的错误 细心点就不会出现 哎呀 新手  还是个马虎的新手鸭梨很大啊。 总的呢出现了 以下几个大的问题

1.-------------------------
异常消息
---------------------------
请求因 HTTP 状态 400 失败: Bad Request。
---------------------------
确定  
---------------------------

2.

---------------------------
异常消息
---------------------------
无法连接到远程服务器
---------------------------
确定  
---------------------------

3.

---------------------------
错误信息
---------------------------
“http://192.168.1.122:8081/WQServer/CommonService/service”处 
---------------------------
确定  
---------------------------

4.

---------------------------
异常消息
---------------------------
基础连接已经关闭: 接收时发生错误。
---------------------------
确定  
---------------------------

5.

---------------------------
错误信息
---------------------------
侦听 IP 终结点=192.168.1.122:8080 时出现 TCP 错误(10049: 在其上下文中,该请求的地址无效。)。
---------------------------
确定  
---------------------------

1主要的问题就是细心程度的问题很可能是你连接地址写错一个字符,或者是前面的服务发布的契约中有几个发布后会变值的变量;

2.可能是服务器没打开。。。(当然这是废话);如果你确定你的服务器是打开的去看一下你客户端的配置文件吧 或许你更新过引用后你的配置文件并没有变 解决方法

删掉客户端的服务引用 包括配置文件重新添加、

3.这个是共通方法的一个样例错误;错误的原因是在服务端你的逻辑业务层或许丢了。。

 4.出现4号问题很大部分是在连接服务的时候所用的接口名字与服务发布的接口名称不相同。

5.ip终结点可能是你的ip改变了 大部分是你映射文件中的ip和端口与你现在所用的ip和端口不同,

其实还有一个第六点:没有截图具体的就是说程序内部错误错误什么什么的,这一个只有一个原因:数据访问层的Sql语句有问题;解决方案——拼接你的sql语句看看问题出现在哪里、

 

 

 在项目做完 测试的时候发现了一个大的问题,因为是直接拼接的字符串,所以当变量中含有‘时程序就会报错。有两种解决方案——一种是直接在服务端限制其输入

  /// <summary>
        /// 禁止输入‘
        /// </summary>
        /// <param name="e"></param>
        private void TsfhKongZhi(KeyPressEventArgs e)
        {
            if (!(e.KeyChar != (char)39))
            {
                e.Handled = true;
            }
        }

这种比较繁琐。。可以在项目开始时写成自定义控件

还有一种时在服务端把他再变成变量传一次值,

问题能想起来的只用这么多了。总体来说这次的程序并不成功 耗时过长主要因为在细节方面的忽视造成后面花大笔时间的修补

你可能感兴趣的:(做完了工作以来的第一个项目 总结了一下在这个项目中遇到的问题 备份一下)