查看Azure ACS生成的请求URL时,我可以看到ACS包含电子邮件,全名,名字和姓氏作为所需声明.此外,fullname属性映射到http://axschema.org/namePerson声明类型.
现在我已将MyOpenID添加为身份提供者.MyOpenID无法识别axschema声明,但我已成功http://schema.openid.net/namePerson从MyOpenID中检索到.
但问题是,即使我将http://schema.openid.net/namePerson声明作为与ACS中的MyOpenID声明发布者相关的规则添加,声明也不会包含在ACS生成的请求URL中.
是否有任何(隐藏)方法来配置要求此声明的请求?或者甚至更好,更改内置映射以使用schema.openid.net/namePerson类型而不是axschema.org/namePerson?
我希望尽可能灵活地使我的应用程序灵活,但不要让我的界面过于具体,从而陷入困境.
存储库的最佳对象类型是什么?IEnumerable,IQueryable还是List?
我正在考虑使用的技术是
Azure App Fabric缓存
实体框架4.1
可能是Windows Server AppFabric
repository appfabric appfabric-beta-2 azure-appfabric entity-framework-4.1
在缓存和读取模式中,在这两种模式中我们都需要编写代码来写入数据库.那么通读,后写方法的真正优势是什么?请澄清我的疑问.
我有一个与webRole调试有关的问题.
未在托管服务或Development Fabric中运行.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.InvalidOperationException:未在托管服务或Development Fabric中运行.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[InvalidOperationException: Not running in a hosted service or the Development Fabric.]
Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.GetDefaultStartupInfoForCurrentRoleInstance() +169
Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener..ctor() +57
[ConfigurationErrorsException: Could not create Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.]
System.Web.Security.Roles.Initialize() +2230194
System.Web.Security.RoleManagerModule.OnLeave(Object source, EventArgs eventArgs) +68
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
Run Code Online (Sandbox Code Playgroud)
这是关于Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener的web.config部分.
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="AzureDiagnostics">
<filter type="" />
</add>
</listeners>
</trace>
</system.diagnostics>
我正在构建一个将在Azure上运行工作流的应用程序.
我已经看到构建演示文稿 使用Workflow构建应用程序和Azure - BUILD 2011,它讨论了当前的功能,以及未来可能实现的功能.讨论的一件事是称为"Azure工作流服务",据我所知,计划在2012年进行预览.但是,我还没有找到更多有关它的信息.
此外,Windows Azure AppFabric中还有一个早期演示文稿Workflow,其中讨论了有关Azure中工作流的更多信息,重点介绍了Windows Azure AppFabric CTP.本演示文稿中讨论了许多很酷的功能,但我不确定这些功能是否可用,如果没有,可用时.
所以有两个问题:
如果我今天需要构建应用程序,那么在Azure上实现工作流的建议方法是什么?
如果应用程序不需要在一年之后完成,那么在Azure上实现工作流的建议方法是什么?
通过谷歌,我发现了另一个关于stackoverflow的问题,关于Azure AppFabric和Windows Server AppFabric之间的差异和相似之处.有人提到,两种版本的AppFabric都更紧密地结合在一起,甚至融合在一起.这篇文章已经差不多2年了,今天在2012年,我仍然在努力解决AppFabric版本背后的计划.
从我的角度来看,我使用Azure AppFabric(缓存,服务总线,ACS),我对它很熟悉.但是当看到Server AppFabric的产品网站时,我很困惑.我错了还是缓存服务是这两种技术唯一的共同点?
谢谢
编辑:(至少,缓存相关的类和接口似乎是不正确的,这是正确的吗?)
我有一个可以分解为多个通信服务的应用程序.我当前的实现是单片的,我想重新组织它,以便可以部署,迭代,独立扩展单个组件.我在Azure中看到了两种方法:
1比2有明显优势吗?选择一个而不是另一个的任何经验法则也会非常有帮助.
azure azure-appfabric azure-cloud-services microservices azure-service-fabric
有没有人尝试过对Azure AppFabric Cache使用NHibernate Velocity L2缓存提供程序?如果是这样,你发现了什么?
另外,我们使用SQL Azure来存储我们的数据.
nhibernate azure second-level-cache azure-appfabric azure-sql-database
如果由于崩溃或其他异常终止(实例重启等),不再有任何发布者或订阅者读取或写入队列、主题或订阅,那么该队列/主题/订阅是否有效孤立?
我通过创建几个队列来测试这个,然后终止应用程序。很久以后,这些队列仍然在服务总线上。似乎他们会永远留在那里。如果我们想要这种行为那就太好了,但在这种情况下,我们没有。
我们如何检测和删除这些队列、主题和订阅?它们将计入 Azure 限制等,并且每次实例重新启动/修补/崩溃时,我们都无法拥有这些孤立进程。
如果它有助于使问题更清楚,这是一种独特的情况,其中队列/主题/订阅具有特殊名称或特殊过滤器,并且在有限的时间内发布者 (1) 和订阅者 (1) 的集合非常有限。这不是我们想要生存能力的情况。这些是特定于实例的响应通道。我们是使用队列还是订阅并不重要。如果实例消失了,那么对该队列(或订阅)的需求也消失了。
这是解决方案的一部分,其中每个 Web 角色都有一个它监视的专用响应通道。在任何时候,这个 Web 角色都可能有数十个通过其他消息传递通道(队列/主题)未决的请求,并且它正在多个线程上等待答案。我们需要将响应返回到放置消息的线程,以便 web 角色可以响应调用者。在这种情况下,仅仅有一个基于机器的订阅是不好的,因为它会接收其他线程的消息。我们需要每个发布线程建立一个专用的响应通道,以便该通道上唯一的东西就是该线程的响应。
即使我们使用订阅(带有某种与实例相关的过滤器)对订阅进行长轮询接收操作,如果网络角色实例死亡,该订阅将成为孤立的,对吗?
这个问题可以归结为:如果队列/主题/订阅没有更多的发布者或订阅者,那么该服务实际上是孤立的。如何检测和清理这些孤儿?
我已成功开始使用Azure AppFabric缓存服务,但我不确定创建DataCacheFactory对象的最佳实践方法是什么.现在我正在为缓存中的每次调用创建它,但显然这不是理想的做法...
有人建议要求单身人士.但我不确定我是否理解这将如何实现(不是实际的Singleton类,而是如何将它们组合在一起).
今天我有一个使用Ninject为我创建的CacheProvider类,我可以在其中执行Get/Put/Remove操作.对于这些方法中的每一个,我创建DataCacheFactory对象,然后调用.GetDefaultCache()来获取DataCache对象,我分别调用Put/Get/Remove.我在一个看起来像这样的方法中这样做:
private T Cache<T>(Func<DataCache, T> cacheAction)
{
using (DataCacheFactory dataCacheFactory = new DataCacheFactory())
{
DataCache dataCache = dataCacheFactory.GetDefaultCache();
return cacheAction(dataCache);
}
}
Run Code Online (Sandbox Code Playgroud)
我现在很确定这不是那么聪明的想法,我应该通过Singleton获取DataCache对象,其中DataCacheFactory对象只创建一次.但是这个对象如何在请求之间存活?如何在Azure上使用> 1个实例?
希望这一切都有意义,而且比我更有经验的人(3个小时)可以帮助我.
我正在使用天蓝色服务面料进行POC.在本地群集中部署我的服务,它在Local.xml中使用默认设置正常工作.
我改变实例计数的那一刻它正在抛出异常.更改实例计数的选项在哪里?基本上我现在尝试在两个节点上运行我的服务.当默认值为1时,它工作正常.
InnerException:HResult = -2146233088 Message = Error -4091 EADDRINUSE地址已在使用中Source = Microsoft.AspNetCore.Server.Kestrel StatusCode = -4091
我的local.xml在这里复制
<Parameters>
<Parameter Name="Product_InstanceCount" Value="2" />
</Parameters>
Run Code Online (Sandbox Code Playgroud)
任何帮助真的很感激.
谢谢
我正在尝试开发一个工具(在 Visual Studio 2010,C# 中),它可以读取 Appfabric 缓存中存在的所有项目并将它们存储在表中。我不必使用powershell。
首先我想,如果我能得到缓存中存在的所有区域,我就可以利用DataCache.GetObjectsInRegion方法来完成我的任务。但是我无法从缓存中获取所有区域名称,因为它不显示用户定义的区域名称,而仅显示默认区域名称,所以现在我放弃了这种方法。
任何人都可以在这里指导我,我的主要目标是读取缓存中存在的所有项目。
azure-appfabric ×12
azure ×9
appfabric ×6
caching ×2
.net ×1
acs ×1
c# ×1
nhibernate ×1
repository ×1
service ×1
servicebus ×1
web ×1
workflow ×1