我正在寫POC(概念驗證)邏輯應用程序。
邏輯應用程序有一個服務總線連接器連線到隊列。
我正在使用peek/complete/abandon。
我寫了一個將消息寫入隊列的客戶端應用程序(dotnet c#console app)(與邏輯應用程序部分無關)。
我將Content Type設置爲「text/plain」。
string payLoad = @"{ ""myid"": ""1000"", ""mymessage"": ""1000 is great"" , ""myboolean"" : ""true"" }";
QueueClient queueClient = /* not seen here */;
brokeredMsg = new BrokeredMessage(payLoad) { ContentType = System.Net.Mime.MediaTypeNames.Text.Plain };
queueClient.Send(brokeredMsg);
現在我用服務總線資源管理器(4.0.104),我在隊列
的問題是,我的邏輯應用程序運行時,它沒有看到平原看到消息-text/JSON。
你可以看到它拿起內容類型。
但是,它本身就是內容。
有沒有辦法用這個觸發器獲取原始文本?
注意,該文件說:
讓我們來看看在不需要轉換或 鑄造,你可以在一個邏輯應用程序中使用的兩個內容類型:應用程序/ JSON和 純文本/ 。
來自: https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-content-type
https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-servicebus
我的C#控制檯應用程序packages.config(無關的邏輯應用程序,但包括完整性)
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.WindowsAzure.ConfigurationManager" version="2.0.1.0" targetFramework="net45" />
<package id="WindowsAzure.ServiceBus" version="2.1.4.0" targetFramework="net45" />
</packages>
附加:
我需要做兩件事得到它的工作
一:
我不得不稍微改變「發件人」代碼。
QueueClient queueClient = /* not seen here */;
string ct = System.Net.Mime.MediaTypeNames.Text.Plain;
/* see https://social.msdn.microsoft.com/Forums/en-US/8fbf2391-8440-46db-bb47-648daccf46fd/servicebus-output-json-is-being-wrapped-in-a-xml-header-in-logic-app?forum=azurelogicapps and https://abhishekrlal.com/2012/03/30/formatting-the-content-for-service-bus-messages/ */
string payLoad = @"{ ""myid"": ""1000"", ""mymessage"": ""1000 is great"" , ""myboolean"" : ""true"" }";
brokeredMsg = new BrokeredMessage(new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(Convert.ToString(payLoad))), true) { ContentType = ct };
queueClient.Send(brokeredMsg);
我用了Derek Li給我的提示。
我已經接受了他的答案作爲答案,但請注意我不得不稍微超過他的建議。上面的代碼有我改變發件人代碼的原因。
簡而言之,我使用的BrokeredMessage的構造函數爲我選擇了一個特定的序列化程序。
BrokeredMessage(對象) 使用的DataContractSerializer用二進制的XmlDictionaryWriter通過 初始化從給定對象的BrokeredMessage類的新實例。
後,我想出了答案,我發現這個答案SOF:
Azure Service Bus Serialization Type
這讓我在那裏的一半。我正在搞清楚第二部分。 @ string3http://schemas.microsoft.com/2003/10/Serialization/ M{「myid」:「1000」,「mymessage」:「1000 is great」,「myboolean」:「true」} – granadaCoder
我已經附加我的答案,以顯示我需要做的除了這個答案。 (強調未來的讀者) – granadaCoder