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

來源:互聯網
上載者:User

標籤:引用   arc   http   業務   set   logs   解決   項目   格式   

  最近遇到的一個項目中用到了標題所說的方法,用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字串。

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.