Tag: azure

如何使用DataContractSerializer为generics类型编写自定义序列化程序?

我想编写一个自定义序列化程序,用于将会话状态存储到Azure缓存(预览)中 ,这意味着这个自定义序列化程序必须实现IDataCacheObjectSerializer ( 如果我错了,请告诉我 )。 我需要编写这个custome序列化程序的原因是我需要序列化一些包含一些System.Data.Linq.EntitySet属性的Linq对象。 默认的序列化程序NetDataContractSerializer无法序列化EntitySet 。 我的计划是使用DataContractSerializer编写自定义序列化程序( 我搜索了一些文章,提到DataContractSerializer可以序列化EntitySet ,所以如果我错了,请告诉我 ),但问题是我如何编写一个可以支持generics的自定义序列化程序类型。 目前,我的自定义序列化程序代码如下: public class CustomSerializer : IDataCacheObjectSerializer { public CustomSerializer() { } public object Deserialize(System.IO.Stream stream) { /* How can I know the type of object?????? */ DataContractSerializer dcs = new DataContractSerializer(“Type of object”); } public void Serialize(System.IO.Stream stream, object value) { DataContractSerializer dcs […]

Azure AD AcquireToken不适用于应用程序密码

我正在尝试使用.NET ADAL库validationAzure AD中的用户密码。 这适用于没有MFA的常规用户帐户,但是对于已激活MFA的用户,我遇到了问题。 当使用用户的实际密码时,我得到了AADSTS50076: Application password is required. ,这是公平的,但当我创建一个新的应用程序密码时,我收到错误AADSTS70002: Error validating credentials. AADSTS50020: Invalid username or password AADSTS70002: Error validating credentials. AADSTS50020: Invalid username or password 。 我创建了多个应用程序密码,但它们都不起作用。 用于尝试身份validation的代码如下: var ac = new AuthenticationContext(“https://login.windows.net/my-tenant.com”); var authResult = ac.AcquireToken(“https://graph.windows.net”, “my-client-id”, new UserCredential(“my.account@my-tenant.com”, “my-password”)); 尝试进行身份validation的用户是此AD中的全局管理员。 是否可以为具有MFA的用户进行这样的身份validation?

我是否可以创建一个Azure Webjob,它将function公开给仪表板但不使用Azure存储?

我想创建一个Azure Webjob来满足批处理需求(特别是它会不断迭代SQL Azure数据库表,获取某些记录,执行一些操作然后更新表)。 我不需要Azure存储。 在这种情况下,我仍然可以将我的方法暴露给Azure函数调用仪表板吗? 或者是Azure存储属性是唯一暴露的方法? 作为一个例子,我可能有一个function: ShowTotalNumRecordsProcessedToday() 我希望公开并能够从仪表板调用。 我已经创建了一些公共测试function,但它们没有显示在仪表板中。 我可以在我的场景中这样做吗?

持久保存到Azure表存储时使用POCO

我打算在我的ASP.NET 5(MVC 6)应用程序中使用Azure表存储,并添加了WindowsAzure.Storage NuGet包,但当我注意到所有我需要的模型都需要从Microsoft.WindowsAzure.Storage.Table.TableEntityinheritance时,我感到非常失望.WindowsAzure Microsoft.WindowsAzure.Storage.Table.TableEntity 。 现在我认为最好的解决方案是拥有两组实体并在我的主域对象和用于持久存储到表存储的实体对象之间创建映射。 我不想将WindowsAzure.Storage包添加到我的所有项目中。 弃用的azure-sdk-for-net在某一点上得到了对POCO的支持,但我在目前的WindowsAzure.Storage中没有看到这一点。 这里的最佳做法是什么?

下载在门户网站上创建的bot会导致无效/不可执行的解决方案

我去了Azure门户试用Bot框架。 我按照步骤创建了一个Proactive bot。 没有改变任何东西,我去Configure continuous integration并下载了zip文件。 当我尝试在Visual Studio 2015中打开该SLN文件时,打开解决方案时出现以下错误: “输出”窗口在“ Solution下拉列表中显示: 无法读取与解决方案关联的某些属性。 这是解决方案资源管理器的屏幕截图: 然后我按F5测试它… 它应该运行吗? 我应该做点什么吗?

以编程方式从Azure网站内部检索站点URL

Azure网站有一个Azure提供的默认“站点URL”,类似于mysite.azurewebsites.net。 是否可以从网站内部(即从ASP.NET应用程序)获取此URL? Environment和HttpRuntime类中有几个属性包含网站名称(例如“mysite”),因此可以轻松访问。 当不是默认值时,事情变得复杂,但例如访问站点的临时插槽(具有类似mysite-staging.azurewebsites.net的站点URL)。 所以我只是想知道是否有直接获取此站点URL的简单方法。 如果没有,那么使用其中一个提到的类来获取站点名称,然后以某种方式检测站点槽(例如可以通过Azure门户的配置值设置)将是解决方案

如何从代码启动Windows Azure存储模拟器V3.0

自从我安装了新的Windows Azure SDK 2.3后,我收到了来自csrun的警告: “通过CSRun的DevStore交互已被删除。请改用WAStorageEmulator.exe。” 所以有两个问题:1)如何从代码中正确启动新的存储模拟器? 2)如何从代码中确定存储模拟器是否已在运行?

服务结构:服务之间的呼叫被延迟了吗?

我们正在开发由多种不同服务组成的服务结构应用程序,而我们的应用程序工作方式的关键部分是这些服务需要大量调用彼此。 直到最近,当我们增加应用程序的负载并发现它大幅减速时,我们没有遇到任何问题。 在经过多次调查和计时之后,我们发现问题似乎是当我们对一种类型的服务(我们有多个实例)进行大量调用时,这些调用似乎是我们调用服务之间的一些延迟,服务实际上开始处理请求。 我们在微软这里描述的服务之间打电话 更清楚:ServiceA获取对ServiceB的引用,然后调用ServiceB.GetResult(),我们记录在ServiceA中调用此方法的时间,我们在GetResult()中做的第一件事就是记录处理开始的时间。 当没有负载时,只有几毫秒,一旦我们增加了负载,我们发现在这些时间之间有4-5秒的延迟。 这是服务面料的某种限制吗? 我们有多个ServiceB实例,集群上的资源使用基本上没什么,CPU占用大约10%,所有节点上的内存使用率约为1/4,但是服务的吞吐量非常低,因为它在这里等待。 为什么要等? 对于服务一次可以处理的不同呼叫,是否存在某种定义的限制? 我们的沟通有问题吗? 谢谢。

在Azure VM中使用Booksleeve Redis客户端时出现Redis连接错误

我最近开始在新的Azure VM上托管我的一个侧面项目。 该应用程序使用Redis作为内存缓存。 在我的本地环境中,一切都运行良好,但现在我已经将代码移动到Azure了,我看到一些奇怪的例外来自Booksleeve。 当应用程序第一次启动时,一切正常。 但是,在大约5-10分钟不活动之后,对应用程序的下一个请求会遇到网络exception(我现在正在工作,并且没有确切的错误消息,所以当我回到家时我会发布它们人们认为它们与讨论密切相关)这导致内部MessageQueue关闭,这导致每个后续Enqueue()抛出exception(“队列关闭”)。 所以经过一些谷歌搜索我找到了这个post: 使用BookSleeve维护一个关于DIY连接管理器的开放Redis连接 。 如果这是最好的行动方案,我当然可以实施类似的东西。 所以,问题: RedisConnection在一定时间后定期关闭是否正常? 我见过conn.SetKeepAlive()方法,但我尝试了很多不同的值,似乎没有任何区别。 还有更多这个还是我咆哮错了树? 从上面的post开始,连接管理器的想法是处理这种情况的最佳方法吗? 任何人都可以解释为什么在新的Azure VM中托管我的Redis实例导致此问题? 我还可以确认,如果我针对Azure Redis VM运行本地环境,我会遇到此问题。 就像我说的,如果Redis连接在不活动后死亡是不寻常的,我会在回家时发布我的日志中的堆栈跟踪和exception。 谢谢! 更新 Didier在评论中指出,这可能与Azure使用的负载balanacer有关: http : //blogs.msdn.com/b/avkashchauhan/archive/2011/11/12/windows-azure-load-balancer-超时details.aspx 假设是这种情况,那么实现可以解决这个愚蠢问题的连接管理器的最佳方法是什么。 我假设我不应该为每个工作单元创建一个连接吗?

从VS C#创建Azure SQL数据库时设置服务层

在C#中从Visual Studio创建新数据库时是否可以设置Microsoft Azure SQL数据库服务层? 目前,我可以连接到Azure SQL服务器并创建表没有问题,但由于某种原因(可能是Microsoft Default),数据库将在Web中创建,这是将要停用的服务层。 我想根据需要将默认服务层设置为Basic,Standard或Premium。 到目前为止我发现的是当我调用这个方法时Database.Initialize(true)< – EF http://msdn.microsoft.com/en-us/library/system.data.entity.database.initialize(v=vs .113).aspx它将创建数据库并将其设置为Web服务层。