簡體   English   中英

如何從WCF REST服務流式傳輸字符串

[英]How to stream a string from a WCF REST service

我用C#編寫了一個非常基本的WCF REST服務,該服務界面中包含以下內容:

[OperationContract]
[WebGet(UriTemplate = "/stream", ResponseFormat = WebMessageFormat.Xml)]
Stream streamTest();

在Service.svc.cs文件中,它具有此功能(顯然,StreamUtility包含在參考中和使用中):

public Stream streamTest()
    {
        return StreamUtility.streamTest();
    }

最后,流功能本身看起來像這樣:(它根據我在這里找到的源代碼返回一個大的任意字符串作為內存流: http : //www.codeproject.com/Articles/35982/REST-WCF-and-Streams擺脫這些名稱Sp

public static Stream streamTest()
    {
        string result = "skdjdfnlsakdjfnasdlkjfnasdkjkfnasldkjfnasdlkjfnasdlkfjnasdldkfjnassdlfkjnadsdlfkjasndflkjsanflaskjdfnalskdkjnfalskfjnslidifubsaoicubuiewnfpoiowneflskjdfansdufawneifuenfgiwe";
        for (int i = 0; i < 5; i++)
        {
            result += result;
        }
        Encoding encoding = Encoding.GetEncoding("ISO-8859-1");
        byte[] returnBytes = encoding.GetBytes(result);
        return new MemoryStream(returnBytes);
    }

不幸的是,出於我無法辨別的原因,該功能似乎無法正常工作。 當我通過瀏覽器訪問localhost:XXXXX / Service.svc / stream調用此函數時,它顯示一個加載圖標,然后凍結。

我已經找到了一些嘗試回答此問題的網站,但它們的代碼均無法正常工作。 在上面找到上述代碼的地方,有一行無效:

WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain";

該行帶有下划線,因為該程序無法找到WebOperationContext引用,並且盡管從該站點下載了僅包含兩個C#文件且無法實際運行的源代碼,但我不知道它將位於何處。

如果有人能確切告訴我如何通過WCF中的REST服務流數據(即使不是通過上述方法),也將不勝感激。 謝謝。

如果只想使用GET和POST,以下文章可能會有所幫助:

開發RESTful WCF服務的CodeProject (這是我個人采取的方式)

您可以按照此處所述使用WebHttpBinding,同時提供PUT和DELETE:

帶有JSON的WCF REST服務

這里有一個更簡單的示例(也使用WebHttpBinding)

流式WCF REST的MS Social

暫無
暫無

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

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