为了坚持REST概念,例如安全操作,幂等性等,如何实现涉及多个参数的复杂搜索操作?
我看过谷歌的实施,这很有创意.什么是期权,除此之外?
幂等要求就是绊倒我,因为操作肯定不会为相同的标准返回相同的结果,比如搜索名为"Smith"的客户每次都不会返回相同的结果,因为添加了更多的"Smith"客户每时每刻.我的直觉是使用GET,但对于真正的搜索功能,结果似乎不是幂等的,并且由于其流畅的结果集需要被标记为不可缓存.
当Web角色将消息放入存储队列时,如何轮询特定的相关响应?我希望后端的Worker Role将消息放入响应队列,目的是让调用者选择响应并从那里开始.
我们的目的是利用Queue将一些繁重的处理卸载到后端的Worker Roles上,以确保Web角色的高性能.但是,在后端Worker完成并做出响应之前,我们不希望响应HTTP请求.
我已经观察到,将数据插入内存优化表比在5-SSD条带集上对基于磁盘的表进行等效的并行插入要慢得多。
--DDL for Memory-Optimized Table
CREATE TABLE [MYSCHEMA].[WIDE_MEMORY_TABLE]
(
[TX_ID] BIGINT NOT NULL
, [COLUMN_01] [NVARCHAR](10) NOT NULL
, [COLUMN_02] [NVARCHAR] (10) NOT NULL
--etc., about 100 columns
--at least one index is required for Memory-Optimized Tables
, INDEX IX_WIDE_MEMORY_TABLE_ENTITY_ID HASH (TX_ID) WITH (BUCKET_COUNT=10000000)
)
WITH (MEMORY_OPTIMIZED=ON, DURABILITY=SCHEMA_ONLY)
--DDL for Disk-Based Table
CREATE TABLE [MYSCHEMA].[WIDE_DISK_TABLE]
(
[TX_ID] BIGINT NOT NULL
, [COLUMN_01] [NVARCHAR](10) NOT NULL
, [COLUMN_02] [NVARCHAR] (10) NOT NULL
--etc., about 100 columns
--No indexes
) ON [PRIMARY] …Run Code Online (Sandbox Code Playgroud) sql-server performance query-performance memory-optimized-tables
这似乎是一种常见的情况,但无论出于何种原因,我都被EF的弱编辑所困扰.
我有两张桌子,如下:
Table1
(
Column1 int, PK
Column2 int, PK
)
Table2
(
Column1 int, PK, FK
Column2 int, PK, FK
Column3 int, PK
)
Run Code Online (Sandbox Code Playgroud)
现在,数据库(我们无法控制)没有外键约束.在此示例中,Table2应该具有引用Table1 on(Column1,Column2)的外键约束.换句话说,Table2的前两列引用Table1中的主键.这是任何普通数据库中的日常问题.
在其他框架中,例如LLBLGenPro,我们可以以非常简单的方式手动添加关系.但是,我们无法弄清楚如何在EF编辑器中实现这一点.此"映射详细信息"窗口非常糟糕且不直观.到目前为止,我们已经设法在映射中选择了各种表,但似乎总是想要关联所有列.
任何想法或参考?
我正在尝试一些非常简单的东西,但由于某些原因它不起作用.基本上,我需要重命名XML文档中的一些节点.因此,我创建了一个XSLT文件来进行转换.
以下是XML的示例:
编辑:地址和地址元素出现在许多级别.这就是我必须尝试应用XSLT的原因.Visual Studio类型化数据集功能(从XSD文件创建类型化数据集)不允许您对同一个表具有嵌套引用.因此,拥有企业/业务/地址和企业/业务/联系人/地址会导致Load()失败.这是一个已知的问题,他们告诉你的只是"没有嵌套的表引用...编辑你的XSD以阻止它." 不幸的是,这意味着我们必须应用XSLT使XML符合"被黑"的XSD,因为这些文件来自第三方供应商.
所以,我们非常接近这里提供的帮助.最后几件事是这些:
1.)如何在xsl:template的match属性中使用命名空间引用,以指定我要将Businessinesses/Business/Addresses重命名为BusinessAddresses,但是将Businessities/Business/Contacts/Contact/Addresses重命名为ContactAddresses?
2.)如何通过显式命名空间引用阻止XSLT混乱每个新元素?它导致输出极度膨胀.
我创建了一个名为"steel"的命名空间,并且取得了很好的成功:
<xsl:template match="steel:Addresses>
<xsl:element name="BusinessAddresses>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
这里显而易见的问题是它将所有地址元素重命名为BusinessAddresses,即使我想要其中一些名为ContactAddresses,依此类推.不必要地向所有重命名的节点添加显式命名空间引用也很麻烦.
我尝试了这种方法,但是只要我在match属性中添加斜杠,它就是XSLT中的语法错误,如下所示:
<xsl:template match="steel:/Businesses/Business/Addresses">
Run Code Online (Sandbox Code Playgroud)
我觉得非常接近,但需要一些关于如何混合命名空间用法和使用斜杠来选择特定路径下的任何节点的方法的指导.
<?xml version="1.0"?>
<Businesses>
<Business>
<BusinessName>Steel Stretching</BusinessName>
<Addresses>
<Address>
<City>Pittsburgh</City>
</Address>
<Address>
<City>Philadelphia</City>
</Address>
</Addresses>
<Contacts>
<Contact>
<FirstName>Paul</FirstName>
<LastName>Jones</LastName>
<Addresses>
<Address>
<City>Pittsburgh</City>
</Address>
</Addresses>
</Contact>
</Contacts>
</Business>
<Business>
<BusinessName>Iron Works</BusinessName>
<Addresses>
<Address>
<City>Harrisburg</City>
</Address>
<Address>
<City>Lancaster</City>
</Address>
</Addresses>
</Business>
</Businesses>
Run Code Online (Sandbox Code Playgroud)
我需要将地址重命名为BusinessAddresses,我需要将地址重命名为BusinessAddress,直接在Business节点下为地址和地址的每个实例重命名.我还需要将地址重命名为ContactAddresses,我需要将地址重命名为ContactAddress,直接在联系节点下为地址和地址的每个实例重命名.
我尝试了几种解决方案,但似乎都没有.它们最终都会生成与原始文件相同的XML.
这是我尝试过的一个例子:
<xsl:template match="/">
<xsl:apply-templates select="@*|node()" />
</xsl:template>
<xsl:template match="@*|*">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template …Run Code Online (Sandbox Code Playgroud) 在IIS 6上,是否可以将多个域名指向同一个Web应用程序,并根据域名从Web应用程序中有条件地提供CSS?
我需要在同一个Web应用程序上托管数百个不同的"皮肤",皮肤依赖于域名,我真的不想发布大量的Web应用程序.
有人可以帮我解决这个问题吗?
我是使用CASE的新手,我怎样才能完成这项工作.如果rights = manager,那么我想在案例中运行代码.
select email, user_id, first_name, last_name, rights
from users u
where company_id = 2141
and receives_emails = 'y'
case u.rights when 'manager' then
and user_id in (select user_id from manager_depts where company_id = u.company_id and dept_id = 2)
end
Run Code Online (Sandbox Code Playgroud)
谢谢!
是否可以在其他人的Exchange 2010帐户上创建会议或约会,而无需他们接受会议?理想情况下,我们希望有一个代表帐户或类似策略,将约会/会议安排到人们的日历上.我们希望绕过正常的请求/接受模型,并将这些会议强制进入日历.
我查看了Exchange 2010文档中的CreateItem(),但是一旦执行该方法,不清楚会发生什么.用户是否收到正常邀请?我们不希望这样.我们想要一个模型,我们的系统可以完全控制用户的日历,而无需接收传统的会议邀请,并且可以自动接受.我也不想使用VBA黑客或插件.
如果由于崩溃或其他异常终止(实例重启等),不再有任何发布者或订阅者读取或写入队列、主题或订阅,那么该队列/主题/订阅是否有效孤立?
我通过创建几个队列来测试这个,然后终止应用程序。很久以后,这些队列仍然在服务总线上。似乎他们会永远留在那里。如果我们想要这种行为那就太好了,但在这种情况下,我们没有。
我们如何检测和删除这些队列、主题和订阅?它们将计入 Azure 限制等,并且每次实例重新启动/修补/崩溃时,我们都无法拥有这些孤立进程。
如果它有助于使问题更清楚,这是一种独特的情况,其中队列/主题/订阅具有特殊名称或特殊过滤器,并且在有限的时间内发布者 (1) 和订阅者 (1) 的集合非常有限。这不是我们想要生存能力的情况。这些是特定于实例的响应通道。我们是使用队列还是订阅并不重要。如果实例消失了,那么对该队列(或订阅)的需求也消失了。
这是解决方案的一部分,其中每个 Web 角色都有一个它监视的专用响应通道。在任何时候,这个 Web 角色都可能有数十个通过其他消息传递通道(队列/主题)未决的请求,并且它正在多个线程上等待答案。我们需要将响应返回到放置消息的线程,以便 web 角色可以响应调用者。在这种情况下,仅仅有一个基于机器的订阅是不好的,因为它会接收其他线程的消息。我们需要每个发布线程建立一个专用的响应通道,以便该通道上唯一的东西就是该线程的响应。
即使我们使用订阅(带有某种与实例相关的过滤器)对订阅进行长轮询接收操作,如果网络角色实例死亡,该订阅将成为孤立的,对吗?
这个问题可以归结为:如果队列/主题/订阅没有更多的发布者或订阅者,那么该服务实际上是孤立的。如何检测和清理这些孤儿?
我们的前端MVC3 Web应用程序正在使用AsyncController,因为我们的每个实例都在为数百个长时间运行的IO绑定进程提供服务.
由于Azure会在一些预先确定的时间间隔后终止"非活动"http会话(这似乎取决于您阅读的网站),我们如何保持连接活动?
我们的客户必须保持联系,我们的流程将持续30秒到5分钟或更长时间.我们如何保持客户端连接/活动?我最初想过在Async方法上有一个超时,只是用几个字节的输出来命中Response对象,有点像分块响应,然后再返回等待一些.但是,我不认为这会起作用,因为MVC3正在处理IIS线程与异步响应的连接,异步响应在那时已经呈现了一个视图.
我们如何在AsyncController上运行一个非常长的进程,但是Azure负载均衡器不能断开客户端的连接?向呼叫者发送立即响应,并要求呼叫者轮询或检查其他资源URL是不可接受的.
azure ×3
asp.net ×2
sql ×2
.net-3.5 ×1
appfabric ×1
iis ×1
performance ×1
queue ×1
rest ×1
servicebus ×1
sql-server ×1
vb.net ×1
web-services ×1
xml ×1
xslt ×1