Во-первых, есть две привязки для отправки данных на служебную шину. Во-первых, то, что вы показываете, используя привязку return
, после установки двух пакетов Microsoft.Azure.WebJobs.Extensions.ServiceBus
и WindowsAzure.ServiceBus
, затем вы сможете отправлять данные. И вы не могли этого сделать, потому что тип вашей функции IActionResult
и вы пытаетесь вернуть string
(responseMessage).
Так что если вы хотите отправить все responseMessage
, просто return new OkObjectResult(responseMessage);
, это будет работать. И результат будет выглядеть примерно так: pi c.
И если вы хотите использовать return responseMessage;
, следует изменить тип метода на строку, это будет public static async Task<string> RunAsync
, а результат будет ниже.
Еще одна привязка, которую вы могли бы сослаться на приведенный ниже код или этот образец .
[FunctionName("Function1")]
[return: ServiceBus("myqueue", Connection = "ServiceBusConnection")]
public static async Task RunAsync(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
[ServiceBus("myqueue", Connection = "ServiceBusConnection")] MessageSender messagesQueue,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string name = req.Query["name"];
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
name = name ?? data?.name;
string responseMessage = string.IsNullOrEmpty(name)
? "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."
: $"Hello, {name}. This HTTP triggered function executed successfully.";
byte[] bytes = Encoding.ASCII.GetBytes(responseMessage);
Message m1 = new Message(bytes);
await messagesQueue.SendAsync(m1);
}
Как определить подключение сервисной шины? Где это функции. json
В локальном вы должны определить соединение в local.settings.jon
, вы можете использовать любое имя с соединением, тогда в привязке значение Connection
должно быть имя, указанное в файле json. И поскольку вы используете c#, поэтому вы не можете изменить файл function.json
, в папке отладки будет файл. json. Таким образом, вы можете изменить только привязку в коде.
Надеюсь, это поможет вам, если у вас все еще есть другие проблемы, пожалуйста, дайте мне знать.