Tag: azure

Azure中的C#DateTime.Now未报告GMT – 是否可以设置默认时区?

在azure网站上,DateTime.Now总是以UTC格式返回时间,我需要将时区设置为GMT,所以所有时间都是一小时。 我此时无法更改任何代码,因此问题是是否可以在配置中或以编程方式更改默认时区(可以在Global.asax中设置默认文化以确保日期格式正确) 。

不接受Azurefunction(ILogger或TraceWriter)的上次日志记录参数

将我自己的项目从早期(几个月前)版本的Azure Functions升级到当前版本后,从VS启动时出现以下错误。 GetLoginUrl:Microsoft.Azure.WebJobs.Host:错误索引方法’Login.GetLoginUrl’。 Microsoft.Azure.WebJobs.Host:无法将参数’log’绑定到类型ILogger。 确保绑定支持参数Type。 如果您正在使用绑定扩展(例如ServiceBus,Timers等),请确保您已在启动代码中调用扩展的注册方法(例如config.UseServiceBus(),config.UseTimers()等)。 之前,我曾经将TraceWriter log作为我方法的最后一个参数,但后来我发现我应该使用ILogger 。 在我做出改变之前,我得到了与上面相同的错误。 ILogger似乎映射到程序集Microsoft.Extensions.Logging.Abstractions 。 也许这就是为什么它不被认可? 应该使用哪种ILogger ? 这是方法签名。 [FunctionName(“GetLoginUrl”)] public static HttpResponseMessage GetLoginUrl( [HttpTrigger(AuthorizationLevel.Anonymous, “get”, Route = null)]HttpRequestMessage req, ILogger log) 我没有尝试将此部署到Azure。 不幸的是,创建一个全新的Functions项目并没有帮助,因为没有.CS文件可以查找以纠正这个问题。

批量上传文件到Azure(C#)的最快方法

批量上传文件Azure Blob存储的最快方法是什么? 我尝试了两种方法, sync和async上传, async显然是最快的,但我想知道是否有更好的方法? 是否内置了对批量上传的支持? 我在文档中找不到任何内容,但可能会错过它。 这是我跑的测试: static void Main(string[] args) { int totalFiles = 10; //10, 50, 100 byte[] randomData = new byte[2097152]; //2mb for (int i = 0; i < randomData.Length; i++) { randomData[i] = 255; } CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]); var blobClient = cloudStorageAccount.CreateCloudBlobClient(); var container = blobClient.GetContainerReference("something"); container.CreateIfNotExists(); TimeSpan tsSync […]

操作未在分配的00:01:00超时内完成

我正在使用代码片段将消息发送到服务总线主题。 try { // sb is instance of ServiceBusConfig.GetServiceBusForChannel await sb.SendAsync(message); } catch (Exception ex) { this.logger.LogError( “chanel”, “An error occurred while sending a notification: ” + ex.Message, ex); throw; } 和实施是 public async Task SendAsync(BrokeredMessage message) { if (this.topicClient == null) { this.topicClient = TopicClient.CreateFromConnectionString(this.primaryConnectionString, this.topicPath); this.topicClient.RetryPolicy = this.retryPolicy; } await this.topicClient.SendAsync(message); } 错误:- […]

如何使用Azure Functions删除blob?

我正在创建一个Azure函数,该函数在图像上载或添加到特定Azure存储时触发,并执行以下操作:1。)调整图像大小2.)将图像放入正确的目录(使用输出绑定)3。)删除处理后添加到Azure存储的原始Blob映像。 我完成了流程中的步骤1和步骤2,但是我发现很少有关于删除blob或API的文档,这些文档将公开Azure存储的方法。 (使用C#) 这是示例代码: #r “System.Drawing” using System; using ImageResizer; using System.Drawing; using System.Drawing.Imaging; public static void Run(Stream inputImage, string imageName, Stream resizedImage, TraceWriter log) { // Log the file name and size log.Info($”C# Blob trigger function Processed blob\n Name:{imageName} \n Size: {inputImage.Length} Bytes”); // Manipulate the image var settings = new ImageResizer.ResizeSettings { MaxWidth […]

Windows Azure MessageLockLostException

我遇到Azure消息总线队列问题。 我抛出了MessageLockLostException并且请求操作未在分配的超时00:01:10内完成。 分配给此操作的时间可能是较长超时的一部分 。 我已将队列设置为ReceiveMode.PeekLock 。 我也检查一下 if(message.LockedUntilUtc.Minute <= 1) message.RenewLock(); 为什么会发生这种情况,是什么导致锁定放弃? 我从你收到的地方读到的地方默认为5分钟。 这个过程通常需要更长的时间。 我想更新锁,但这不太顺利。

Azure Service Bus消息泵是否真的是事件驱动的?

所以我们最近一直在研究Azure Service Bus,我们对是否应该使用无限循环轮询队列/订阅或者是否应该使用OnMessage回调/消息泵function感到困惑。 什么会执行更少的操作,从而降低成本? 理想情况下,我们需要一个事件驱动的系统,因此我们不会浪费操作,而且通常只是一种更好的方法。 我的问题是,使用OnMessage定义为“在事件驱动的消息泵中处理消息”真的是事件驱动的吗? 如果你看看这个页面(QueueClient.OnMessage): https ://msdn.microsoft.com/library/azure/microsoft.servicebus.messaging.queueclient.onmessage.aspx你会注意到底部的评论它基本上是一个无限循环的包装器,它调用Receive()方法。 这对我来说听起来不是事件驱动的。 现在,如果您查看此页面(SubscriptionClient.OnMessage): https : //msdn.microsoft.com/en-us/library/azure/dn130336.aspx ,该注释不存在。 那么主题/订阅和队列是一样的,还是它实际上是订阅的事件驱动而不是队列? 为什么他们甚至说这是事件驱动的,显然不是? QueueClient.OnMessage页面上的注释具有“无限循环”和“每个接收操作是可计费事件”这一事实有点可怕。 而且,我并不是真的担心它会花多少钱/多少钱,我更感兴趣的是让它尽可能高效。

执行测试时出错,如果使用CreateResponse扩展方法返回Azure Function HttpResonseMessage

我的Azurefunction代码如下所示 public static class MyHttpTriggerFunction { public static async Task Run([HttpTrigger(AuthorizationLevel.Function, “get”, “post”, Route = null)]HttpRequestMessage req, TraceWriter log) { // some business logic if (valid) { return req.CreateResponse(HttpStatusCode.OK, true); } else { return req.CreateResponse(HttpStatusCode.BadRequest, “some error message”); } } } 在我的测试项目中,我正在阅读如下结果: var result = await MyHttpTriggerFunction.Run(req, log).ConfigureAwait(false); 执行该函数后,当它尝试在结果变量中返回响应时,测试方法失败并出现exception。 ** System.InvalidOperationException:请求没有关联的配置对象,或者提供的配置为null。 ** 我确保测试项目具有相同的System.Net.Http.HttpRequestMessageExtension dll。 如果我更改function代码不使用CreateResponse扩展方法(此扩展方法来自VS […]

无法将用户存储在默认的MVC应用程序中

我之前使用授权时遇到了一些问题,因此我在Azure上的新资源组中获得了全新的一切 – 新计算机,新操作系统,VS的全新安装,新应用和数据库。 整个shabang。 我可以确认我可以登录到Azure DB,如下面的屏幕截图所示。 我可以看到数据库,表格,用户等。 问题是,虽然它在本地工作(使用我自动提供的默认连接字符串),但它在Azure中表现不佳(尽管我从那里使用发布文件)。 它说了一些关于文件未找到的内容,根据这个答案 ,我需要更改连接字符串。 我改变后,我得到以下错误。 请注意防火墙已打开,我可以在运行应用程序代码时访问数据库。 我觉得在自动配置身份validation部分时会出现问题。 不过,我对如何解决问题没有想法。 [SqlException(0x80131904):用户’Chamster’登录失败。 已为此会话分配了跟踪ID“09121235-87f3-4a92-a371-50bc475306ca”。 在需要帮助时,请将此跟踪ID提供给客户支持。] 我正在使用的连接字符串是这个。 Server=tcp:f8goq0bvq7.database.windows.net,1433; Database=Squicker; User ID=Chamster@f8goq0bvq7; Password=Abc123(); Encrypt=True; TrustServerCertificate=False; Connection Timeout=10; 这个问题困扰了我一段时间,我会在两天内把它给它。 任何建议都热烈赞赏。

在Azure表中存储十进制数据类型

Windows Azure表存储不支持 十进制数据类型。 建议的解决方法是使用自定义属性将decimal属性序列化为字符串: [EntityDataType(PrimitiveTypeKind.String)] public decimal Quantity { get; set; } 如何实现此EntityDataType自定义属性,以便可以从Windows Azure表存储和检索十进制属性?