Tag: azure

部署的Azurefunction(v2)未运行

我有一个Azurefunctionv2,它在本地工作。 当部署到Azure时,一切似乎都在工作状态(包含二进制文件的bin文件夹和包含function.json的函数名称文件夹)。 但是,当我检查它们是否运行(查看日志)时,它们不在监视器选项卡( No data available ),kudu日志流以及常规function视图中: 2018-01-25T10:27:47 Welcome, you are now connected to log-streaming service. 2018-01-25T10:28:47 No new trace in the past 1 min(s). 2018-01-25T10:29:47 No new trace in the past 2 min(s). 信息: 使用Timer触发的Azure Function v2调用: 耐用function(但“正常”v2function不起作用) 使用TFS将代码部署到ARM生成的资源 function.json: { “generatedBy”: “Microsoft.NET.Sdk.Functions.Generator-1.0.6”, “configurationSource”: “attributes”, “bindings”: [ { “type”: “timerTrigger”, “schedule”: “0 */1 * […]

Azure DocumentDB十进制截断

我目前正在使用Azure DocumentDB来存储价格的产品数据。 几乎所有东西都工作得很好但现在我有一个问题,我从读取DocumentDB时截断我的小数(System.Decimal)。 比如这个价格: 输入价格:25.1132356547854257645454 将被截断为 DocumentDB价格:25.113235654785 由于我们使用同步机制来查找价格变化,这将导致价格变化,因为它不再是相同的价格。 我不知道如何改变DocumentDB的行为。 在最坏的情况下,我将不得不截断我的输入价格以防止这个问题,但我宁愿不这样做。 感谢帮助。

为什么BrokeredMessage.RenewLock()只更新锁几秒钟?

我有一个BrokeredMessageContext类,它使用Timer定期检查并更新BrokeredMessage实例上的锁,以防处理此消息的进程运行的时间超过预期。 它通过调用BrokeredMessage实例上的RenewLock()方法来更新锁。 我希望这个调用给我一个与原始锁相同超时的新锁( MSDN声明“你可以在与实体锁定超时相同的持续时间内更新锁定,并且没有锁定续订的最大持续时间。” ) ,但在调试时,锁定超时似乎增加了“任意”10-15秒。 我在BrokeredMessage实例上设置了一个监视器,我可以看到每次调用RenewLock()时,LockedUntilUtc属性都会增加10-15秒。 有谁知道为什么会这样? 可以做任何事情来延长锁定时间吗? 编辑: Mike的回答如下,是正确的。 事实上,我发现事实上,我试图从一开始就每隔十秒更新一次锁,即使我的代码是为了在锁定到期之前的20秒之前更新锁定。 这一切都归结为时间比较问题以及我的机器上的时间错误(它提前了将近一分钟)。 D’哦!

如何在Azure应用程序洞察中忽略localhost

我最近开始主持我的第一个生产应用程序 我继续并激活应用程序见解,我认为这些有很多价值。 但是,我得到了来自开发人员方面的统计信息,例如日志记录来自localhost:xxxx的条目。 我确定有办法解决这个问题。 谁能给我一些指示吗?

Azure存储容器大小

如何在Azure存储中获取容器大小? 我通过C#API访问Azure存储: var account = CloudStorageAccount.Parse(ConfigurationManager.AppSettings[“AzureStoragePrimary”]); var client = account.CreateCloudBlobClient(); var container = client.GetContainerReference(“myContainer”);

如何在不使用临时文件的情况下将.NET对象序列化为Azure Blob存储?

我想将.NET对象存储到Azure Blob存储中。 目前我使用TextWriter将其序列化为XML文件( episodeList是我想要序列化的对象): XmlAttributeOverrides overrides = new XmlAttributeOverrides(); XmlAttributes Xmlattr = new XmlAttributes(); Xmlattr.XmlRoot = new XmlRootAttribute(“EPISODES”); overrides.Add(typeof(List), Xmlattr); XmlSerializer serializer = new XmlSerializer(typeof(List), overrides); TextWriter textWriter = new StreamWriter(@”C:\movie.xml”); serializer.Serialize(textWriter, episodeList); textWriter.Close(); 然后将文件上传到Blob存储: CloudBlobClient blobStorage = createOrGetReferenceOfBlobStorage(folderName); string uniqueBlobName = string.Format(“{0}/{1}”, folderName, fileName); CloudBlockBlob blob = clouBblockBlobPropertySetting(blobStorage, uniqueBlobName, “.txt”); using (StreamWriter writer = […]

如何正确使用UrlEncode和Decode

所以我有一个文件,我上传到azure blob存储: C:\ test文件夹\ A + B \ testfile.txt 和两个扩展方法,帮助编码我的路径,以确保它被赋予有效的azure存储blob名称 public static string AsUriPath(this string filePath) { return System.Web.HttpUtility.UrlPathEncode(filePath.Replace(‘\\’, ‘/’)); } public static string AsFilePath(this string uriPath) { return System.Web.HttpUtility.UrlDecode(uriPath.Replace(‘/’, ‘\\’)); } 因此,当上传文件时,我将其编码为AsUriPath并获取名称test%20folder\A+B\testfile.txt但是当我尝试将其作为文件路径返回时,我得到test folder\AB\testfile.txt ,这显然不是相同( +已被删除) 使用UrlEncode和UrlDecode确保您获得与最初编码相同的信息的正确方法是什么?

如何在Azure Service Bus主题上删除DeadLetter消息

我正在写一段代码,这将允许我们: 查看Azure Service Bus主题(Peek)中存在的所有死信消息的列表 修复并将它们发送回主题 重新发送时从死信队列中删除它们。 前2分我没有问题; 使用Peek接收模式,我可以显示消息列表,我们可以编辑和重新发送,没有任何问题。 当我想要实际从死信队列中删除消息时,问题出现了。 我们如何通过消息级别对消息执行此操作? 我们可能只想删除驻留在死信队列中的2条消息,并保留其他消息以便稍后查看。 在死信队列中的消息上调用.Complete()是否像在主订阅中那样删除它? 以供参考; 这是我们获取死信队列的SubscriptionClient代码: private SubscriptionClient GetOrCreateSubscriptionClient(string connectionString) { if (!NamespaceManager.TopicExists(_topicName)) { NamespaceManager.CreateTopic(new TopicDescription(_topicName) { MaxSizeInMegabytes = 5120, DefaultMessageTimeToLive = TimeSpan.FromSeconds(DEFAULT_LOCK_DURATION_IN_SECONDS) }); } if (!NamespaceManager.SubscriptionExists(_topicName, _subscriptionName)) { NamespaceManager.CreateSubscription(_topicName, _subscriptionName); } var deadLetterPath = SubscriptionClient.FormatDeadLetterPath(_topicName, _subscriptionName); var client = SubscriptionClient.CreateFromConnectionString( connectionString, deadLetterPath, _subscriptionName, ReceiveMode.PeekLock); return client; […]

如何将异步函数写入服务总线队列?

使用Azure WebJobs SDK,我想创建一个异步函数,它将接收ServiceBus队列输入并写入ServiceBus队列输出。 异步方法不能有参数,例如,BlobStorage上的示例似乎是通过使用Streams和TextWrite来解决的。 但是,当我尝试使用ServiceBus参数执行相同操作时,我收到exception。 public static async void Transform( [ServiceBusTrigger(“%InputQueue%”)] String input, [ServiceBus(“%OutputQueue%”)] TextWriter output, TextWriter log) 错误索引方法’FilterCurrentCpesToNewCpes’ 无法绑定ServiceBus以键入“System.IO.TextWriter”。 我收到了类似Stream的消息。

从代码运行触发的Azure WebJob

我创建了一个控制台应用程序上传为Azure触发器Webjob。 当我从Azure门户运行它时它工作正常。 我想从我的C#代码中运行它。 我不想使用队列或服务总线。 我只想在用户在我的网络应用中执行特定操作时触发它。 搜索后我得到了一个解决方案来触发预定的http://blog.davidebbo.com/2015/05/scheduled-webjob.html 知道如何从代码运行吗?