程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Spring.Net封閉業務類為WebService注意點和問題,

Spring.Net封閉業務類為WebService注意點和問題,

編輯:C#入門知識

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字符串。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved