簡體   English   中英

序列化MSMQ的備用視圖

[英]Serializing Alternative views For MSMQ

我的概念是從url下載圖像並將圖像(鏈接資源)發送到郵件消息到MSMQ !,我可以成功下載圖像,但是我無法將其發送到MSMQ,我需要序列化備用視圖,無法做到嗎?

這是代碼

MailMessage m = new MailMessage();
string strBody="<h1>This is sample</h1><image src=\"cid:image1\">";
m.Body = strBody;
AlternateView av1 = AlternateView.CreateAlternateViewFromString(strBody, null, MediaTypeNames.Text.Html);

在這里,我從url下載圖像

Stream DownloadStream = ReturnImage();
LinkedResource lr = new LinkedResource(DownloadStream, MediaTypeNames.Image.Gif);
lr.ContentId = "image1";
av1.LinkedResources.Add(lr);
m.AlternateViews.Add(av);

 private Stream ReturnImage()
    {

        try
        {
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(urlForImage);

            webRequest.ProtocolVersion = HttpVersion.Version10;
            webRequest.KeepAlive = false;

            webRequest.Timeout = 1000000000;
            webRequest.ReadWriteTimeout = 1000000000;

            using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())

            {
               Stream k = webResponse.GetResponseStream();
                MemoryStream ms = new MemoryStream();
                int count = 0;
                do
                {
                    byte[] buf = new byte[1024];
                    count = k.Read(buf, 0, 1024);
                    ms.Write(buf, 0, count);
                } while (k.CanRead && count > 0);
                return ms;
            }
        }
        catch (WebException e)
        {
            return null;
        }

你們能為序列化“替代”視圖提供解決方案,以便我能夠發送和接收MSMQ!

我認為您不應該采用這種方法。

MSMQ被設計為輕量級,因此並不是要發送像圖像這樣的大數據-盡管當然這在技術上是可行的。

還請記住,MSQM每條消息的限制為4 MB。 根據圖像的大小,這可能會出現問題(或可能不會出現問題)。

相反,我建議您將圖像保存到所有參與的應用程序/服務/等都可以訪問的位置,例如網絡共享,文件服務器或Web服務器,或...

然后,您僅在MSMQ消息中發送URI。 這將在發送方和接收方都非常快地處理。 而且,這將大大減輕MSMQ基礎結構的負擔。

暫無
暫無

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

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