zoukankan      html  css  js  c++  java
  • Spring.Net封闭业务类为WebService注意点和问题

      最近遇到的一个项目中用到了标题所说的方法,用Spring.Net将业务类封闭成WebService供其它地方调用使用,感觉还是蛮新鲜的,于是在园子中搜了一篇园友写的文章(这里)自己也尝试着搭了一个环境,最后是顺利跑了起来,但是中间遇到了几个问题,这里记录一下。

      具体的搭建方法不再赘述,上面的文章写的比较清楚了,主要问题:

      1、配置文件引入方式

        在配置文件web.config中引用spring.net的配置文件时,我并没有像上面文章中一样建了一个新的配置文件而是建了一个叫settings.xml的xml文件,但是效果是一样的,spring.net都能识别的,因为config文件本身就是一个xml文件。然后在web.confg文件中的context节点中引入配置文件,依照上面文章中的写法<resource uri="~/settings.xml"/>是没问题的,可以成功启动并完成封装,但是用另外一种方式时<resource uri="aeesmbly://Spring.Net/Spring.Net/settings.xml"/>(一般来说我们在实际的项目中会用这种方式,因为我们都会对项目进行分层,不同的层关注并处理不同的业务,上面那种方法适用于引用当前项目集中的配置文件,要引用其它项目集中的配置文件时就要用这种方式),出了问题,会抛出InputStream为null的错误,其实就是没有找到配置文件,原因是没有把settings.xml文件设置为“嵌入的文件”(在属性中设置)

      2、调用远程调用问题

        启动成功后点击页面上的方法名然后点击调用按钮能看到返回结果,但是在另一个项目里用WebClient进行调用时却出了问题,抛出“远程服务器关闭了一个现有连接”,然后发现只能用点击调用按钮的方式才能看到结果,换个浏览器把地址复制进去回车也不能用。原因是没有在配置文件web.config添加远程调用协议,在system.web节点下添加如下代码即可

       <webServices>
          <protocols>
            <add name="HttpPost"/>
            <add name="HttpGet"/>
          </protocols>
        </webServices>

      3、返回值问题

        使用这种方式封装的WebService有个问题目前我还未找到解决办法,就是返回值是xml类型的,不能通过在请求头信息里面设置类型的方式控制返回值类型(如json格式),都是xml类型的string字符串。

  • 相关阅读:
    新型肺炎实时动态
    大学排名数据爬取
    python BeautifulSoup基本用法
    爬虫爬取
    人口普查系统--信息查找
    人口普查系统--信息删除
    人口普查系统--信息修改
    人口普查系统--信息登记
    期中考试题目
    期中考试前准备--数据库查找代码
  • 原文地址:https://www.cnblogs.com/daner1257/p/6305735.html
Copyright © 2011-2022 走看看