簡體   English   中英

使ColdFusion Web客戶端可以輕松調用ASP.NET ASMX Web服務

[英]Making an ASP.NET ASMX web service easily callable by ColdFusion web clients

我已經編寫了一個ASP.NET Web服務(.asmx樣式而不是WCF),並且在原型環境中現在可以使用主要的Web方法。 現在,我需要向其中一種Web方法中添加幾個新參數,但更重要的是,我需要使ColdFusion Web應用程序中的Web服務盡可能“消耗”(可調用)。 我對如何根據CF(或其他客戶端調用方)的使用情況為Web服務方法最佳設計參數類型感到困惑。

我的原型依賴於我自己的ASP.NET網頁,該網頁稱為Web服務。 這是從.aspx頁調用我的服務的代理類的方式:

BrokerASMXProxy.Svc.FileService brokerService = new BrokerASMXProxy.Svc.FileService();
recNumber = brokerService.UploadFile(binData, fileNameOnly, kvData);

這是網絡方法的簽名:

[WebMethod]
    public string UploadFile(byte[] incomingArray
        , string FileName
        , MetaData[] metaDataArray)

我已經有點擔心字節數組和MetaData數組了(ColdFusion在使用這樣的參數類型調用此服務時會遇到問題嗎?)。 我認為字符串不是問題,但是設計供所有類型的調用者使用的Web方法(及其類型)的最佳實踐是什么?

ps我也有一個DownloadFile webmethod,它具有“ out”參數:

    [WebMethod]
    public bool DownloadFile(string recNumString, out byte[] docContents, out string returnFiletype)

..我同樣也想知道ColdFusion適應這些輸出。 先感謝您。

如果您正在運行ColdFusion 8,並且恰好將它與.NET代碼放在同一台物理服務器上,則最好使用.NET集成,在其中可以編寫.NET類並將其實例化為CF代碼,如果它是CFC或Java對象。

這是一個編寫在CFML代碼中使用的.NET類的好例子(在同一個博客上,還有很多其他文章)

但是,如果您的.NET和CF應用程序服務器不在同一台計算機上,則可能必須使用最初認為的Web服務。

Web服務的偉大之處在於它們與語言無關。 看起來您已經定義了MetaData類型或類,並且希望將這些集合作為輸入參數發送。 最終將轉換為表示該數組的XML,並將數組中的每個項目分解為其核心部分(字符串,數字,布爾值等)...從理論上講,它應該可以正常工作 ,如只要您相應地設計輸入XML。

自上次創建.NET Web服務以來已經有一段時間了,但是我敢肯定,有一種方法可以查看預期的XML結構(即WSDL)。 找到那個,你就得到了答案。 然后,您只需要從ColdFusion代碼創建適合該定義的XML,就可以完成工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM