Tag: azure

将类设置为Serializable的缺点

我正在使用Azure Cache预览,需要创建一些Serializable类。 将类设置为可序列化是否有任何缺点 – 例如性能问题? [Serializable] public class MyClass {} 我发现很少有相关问题,但它们并不是缺点。 所有.NETexception都是可序列化的吗? 将类标记为Serializable的缺点 预先感谢

获取容器中Azure blob文件的名称列表?

我需要列出Azure Blob文件名的名称。 目前我能够列出所有带URL的文件,但我只需要列出名称。 我想避免解析名称。 你能看到我的下面的代码和指南: CloudStorageAccount backupStorageAccount = CloudStorageAccount.Parse(blobConectionString); var backupBlobClient = backupStorageAccount.CreateCloudBlobClient(); var backupContainer = backupBlobClient.GetContainerReference(container); var list = backupContainer.ListBlobs();

Azure Web应用程序服务,使用混合连接管理器使用HttpClient调用onpremise WEB API

我们在本地网络机器上部署了Web服务(asp.net core mvc)。 我们正尝试使用部署在Azure上的App Service来调用这些WEB API。 但是当我们尝试使用“HTTP”协议连接它时,它会给出超时错误或任务被取消错误。 在“HTTPS”的情况下,它给出“ 发生安全错误错误 ”。 我们在Azure App Service上创建了Hybrid连接,以连接到onpremise web api服务,该服务在线显示80和443端口。 我们也在本地网络机器上设置了Hybrid Connection Manager。 以下是用于调用代码的代码段,该代码段部署在Azure App Service上(例如https://xyz.azurewebsite.com ) try { var httpClient = new HttpClient(); httpClient.Timeout = TimeSpan.FromMinutes(60); httpClient.BaseAddress = new Uri(“https://onpremise”); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”)); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; //Simple […]

“无限循环ASP.NET MVC和Azure Active Directory B2C

我试图只允许具有角色“全局管理员”的Azure Active Directory B2C用户访问以下类(这就是我包含Authorize命令的原因): [Authorize(Roles = “admin”)] public class UserProfileController : Controller { … controller class … } 我的Startup类看起来像这样: public partial class Startup { private static string clientId = ConfigurationManager.AppSettings[“ida:ClientId”]; private static string appKey = ConfigurationManager.AppSettings[“ida:ClientSecret”]; private static string aadInstance = ConfigurationManager.AppSettings[“ida:AADInstance”]; private static string tenantId = ConfigurationManager.AppSettings[“ida:TenantId”]; private static string postLogoutRedirectUri = ConfigurationManager.AppSettings[“ida:PostLogoutRedirectUri”]; // […]

Azure存储:403服务器无法validation请求

我在这里和谷歌搜索,但我找不到解决方案。 使用我的C#代码,我想从Azure存储Blob中读取一个文件。 代码(仅6行)在另一个项目(Windows 8.1 Universal App)中运行良好,但在我的新Windows 10 UWP应用程序中运行不佳。 这是我的代码: CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureConnectionString); CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference(“container-name”); CloudBlob b1 = container.GetBlobReference(“27.76914.json”); StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(“stefano1.json”, CreationCollisionOption.ReplaceExisting); await b1.DownloadToFileAsync(file); 例外情况: 服务器无法validation请求。 确保正确形成Authorization标头的值,包括签名。 使用Fiddler4我在消息403上发现了这个错误: 在HTTP请求’R2t9hKsyXf470HF2LNP8T + M2nci0ddE / ojQ0r4UVjJQ =’中找到的MAC签名与任何计算签名不同 我的尝试: 该应用程序第一次工作(文件下载)。 我第二次得到例外。 如果我更改了请求的文件名:应用程序第一次工作(文件已下载)。 我第二次得到例外。 第二天我立刻得到同样的例外(第一次运行) 此外,如果我删除bin和obj文件夹,我会收到错误 如果我创建另一个应用程序并尝试下载相同的文件(与第1点相同),它第一次工作,但不是第二次。 在控制台应用程序中一切正常。 这是Fiddler4 Raw Request […]

使用C#反序列化Avro文件

我找不到用C#反序列化Apache Avro文件的方法。 Avro文件是Microsoft Azure Event Hub中的存档function生成的文件。 使用Java,我可以使用Apache的Avro Tools将文件转换为JSON: java -jar avro-tools-1.8.1.jar tojson –pretty inputfile > output.json 使用NuGet包Microsoft.Hadoop.Avro我能够提取SequenceNumber , Offset和EnqueuedTimeUtc ,但由于我不知道Body使用什么类型,因此抛出exception。 我尝试过使用Dictionary和其他类型。 static void Main(string[] args) { var fileName = “…”; using (Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)) { using (var reader = AvroContainer.CreateReader(stream)) { using (var streamReader = new SequentialReader(reader)) { var record […]

计算Azure表存储中分区内的行数

我已经看到有关如何获取Azure存储表的总行数的各种问题,但我想知道如何获取单个分区中的行数。 如何在将少量实体数据加载到内存时执行此操作?

Azure ServiceBus AutoRenewTimeout

我通过.net SDK使用Azure ServiceBus队列。 OnMessageHandler / OnMessageOptions上有一个名为“AutoRenewTimeout”的标志,但似乎对这个值的实际含义感到困惑。 在这里的官方文档https://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.onmessageoptions.aspx它建议AutoRenewTimeout应该大于队列锁定。 获取或设置自动续订锁定的最长持续时间。 该值应大于最长的消息锁定持续时间; 例如,LockDuration属性。 这似乎表明AutoRenewTimeout或多或少是处理消息所需的最长时间。 例如,如果您的锁定持续时间为1分钟,并且自动续订时间为5分钟,则该消息将在放弃之前总共续订5次,并再次在队列中显示。 还有其他StackOverflow答案确认这种情况,例如https://stackoverflow.com/a/36051408 要处理长消息处理,您应该设置AutoRenewTimeout == 10分钟(在您的情况下)。 这意味着每次LockDuration过期时,锁定将在这10分钟内更新。 因此,例如,如果您的LockDuration为3分钟且AutoRenewTimeout为10分钟,则每3分钟锁定将自动续订(3分钟,6分钟和9分钟后),并且自消息消耗后12分钟后锁定将自动释放。 然而,在更多的研究中,我偶然发现了一条旧的推文( https://twitter.com/clemensv/status/649940087267041284 ),它看起来像是微软消息传递的首席架构师。 在这条推文中,它似乎表明AutoRenewTimeout是调用“RenewLock”方法的时间间隔。 它是在回调处于活动状态时在消息上调用https://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.renewlock.aspx的时间间隔 因此,例如,如果您的锁定时间是1分钟,则AutoRenewTimeout应该是30秒,以确保在释放之前更新消息锁定。 在我自己的测试中,我倾向于前者是正确的,但推文让我怀疑的事实可能我不知道充分利用AutoRenewTimeout

预编译的Azurefunction和CloudTable绑定输出不起作用

我正在使用预编译的Azure函数,它看起来像: public static async Task Run(Stream inputBlob, Stream outputJson, Stream outputXml, CloudTable schedulerTable) 输出绑定看起来: { “name”: “schedulerTable”, “type”: “table”, “direction”: “out”, “tableName”: “SchedulerTable”, “connection”: “SchedulerTable” } 当我从我的函数中删除参数schedulerTable时,它是有效的。 “主持人扔在我脸上的信息是: Microsoft.Azure.WebJobs.Host: Error indexing method ‘Functions.InputFileAdaptorAF’. Microsoft.Azure.WebJobs.Host: Can’t bind Table to type ‘Microsoft.WindowsAzure.Storage.Table.CloudTable’. 真的,当我添加一个表输出绑定尝试使用不同的替代品时,没有任何作用。 不起作用的替代方案是: 参数schedulerTable,类型为SchedulerRegister。 SchedulerRegister类inheritance自TableEntity。 带有ICollector类型的参数schedulerTable。 参数schedulerTable,类型为CloudTable。 (上述情况)。 拜托,我怎么能解决它? (使用输出绑定到azure表)

在Azure WebRole上自动启动WCF

我在Azure(WebRole)上托管了一个WCF。 WCF做了很多后台任务并回复了一些请愿。 问题是如果WCF长时间没有收到任何请求(10小时或更长时间),应用程序池将在azure实例上回收,并且WCF任务将停止。 我做了一些调查,我可以启用一个AutoStartfunction来触摸machine.config,但这不是一个azure deploy的选项。 我可以在web.config中启用AutoStart或部署配置文件吗?