簡體   English   中英

WCF服務作為Service Fabric中的無狀態服務

[英]WCF service as stateless service in Service fabric

我正在使用BasicHttpBinding將SOAP服務(ASMX服務)創建到WCF服務中。 此處實施相同

編寫界面如下

[ServiceContract]
public interface IExample
    {
    [OperationContract]
    [WebMethod]
    Task<XmlElement> GetDetails ();

    [OperationContract]
    [WebInvoke(Method = "Get", UriTemplate = "/GetExample")]
    Task<string> GetExample (string guid);
    }

接口的實現:

        public class ImplementInteface: IExample{
        public ImplementInterface(){}

        public Task<XmleElement> GetDetails(){
            //Implementation of GetDetails function
        }

        public Task<string> GetExample(string guid){
            //Implementation of GetExampl function
        }
    }

運行服務結構后,無狀態服務將正常運行。

我有舊代碼(asmx文件),其中已經定義了相同的結構,並且具有相同的ATP。 遺留API公開的網址,我不想弄亂它。 我想將新的SOAP API公開給相同的URL。 但是,當我嘗試從無狀態服務調用新的SOAP API時,它向我發出錯誤的錯誤請求 有什么方法可以將這些api創建到服務結構中的無狀態服務中嗎?

那樣就行不通了。 SOAP需要將客戶端請求(實際上是它們的主體)封裝為XML。

在瀏覽器中輸入地址不會創建任何XML,但會發送簡單請求

所以,

  1. 您可以使用其他方式發送SOAP請求(例如,必須使用C#編寫的WCF客戶端 ,或類似SoapUI的第三方產品)
  2. 或者,您放棄SOAP要求並使用WCF創建REST服務,該服務不需要XML主體,可以通過瀏覽器調用

如果決定使用#2,則必須在svc文件中添加此屬性

Factory="System.ServiceModel.Activation.WebServiceHostFactory"

暫無
暫無

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

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