我正在为一些公共页面创建一个锁定机制,它应该只允许一个用户同时编辑它们.客户端向服务器发出GET API调用请求锁定,该锁定返回MVC ActionResult对象.出于某种原因,当我在本地运行程序并返回a new HttpConflictResult("Cannot acquire lock", message);
(表示获取锁失败)时,它工作正常.正确发送和接收错误消息,可以在警报或任何需要的地方显示.但是,当我远程访问该站点时,将覆盖该消息"由于存在冲突,页面未显示".我做错了什么或者这是IIS的"功能"还是什么?如果是,是否有办法绕过它,这样我仍然可以得到我想要的客户消息?
在此先感谢您的帮助!
编辑:对不起,忘记了HttpConflictResult是一个继承的类.这里有一些信息:
public class HttpConflictResult : HttpErrorResult
{
public HttpConflictResult() : this(string.Empty) { }
public HttpConflictResult(string errorMessageResource) : this("Conflict", errorMessageResource, true) { }
public HttpConflictResult(string statusMessage, string errorMessage) :
base(409, statusMessage, errorMessage) { }
}
public class HttpErrorResult : ActionResult
{
protected int _statusCode;
protected string _statusMessage;
protected string _errorMessage;
public HttpErrorResult(int statusCode, string statusMessage, string errorMessageResource)
{
_statusCode = statusCode;
_statusMessage = statusMessage;
_errorMessage = errorMessage;
}
public override void …
Run Code Online (Sandbox Code Playgroud) 我遇到了在SQL Server中修改XML的问题,这对我来说似乎没有意义.我想更新一个空节点的值,但它似乎没有工作.例如,假设我有这个XML树:
<root>
<node />
</root>
Run Code Online (Sandbox Code Playgroud)
我想<node />
用'foo' 更新值,所以我有XML查询:
UPDATE [Table]
SET [XmlColumn].modify('
replace value of (root/node/text())[1]
with "foo"')
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这不起作用.它将节点视为不存在.如果节点已经有一个值(例如<node>bar</node>
),它可以正常工作,但是当节点为空时,它会默默地忽略该命令,甚至不会抛出任何错误.有没有办法让SQL Server replace value of
在空节点上确认?
编辑:
我希望这个查询的最终结果是这样的:
<root>
<node>
foo
</node>
</root>
Run Code Online (Sandbox Code Playgroud) 我想知道是否有办法强制Highcharts显示传递到其x轴的所有类别,而不提供填充数据来破解它的工作.例如,http://jsfiddle.net/cbargren/Sdnqu/指定了3个额外的x轴类别(foo,bar,baz),没有任何实际数据(该系列不一定具有相应类别的数据),以及他们没有出现在图表上.可以这样做吗?谢谢!
在过去的几天里,我一直在尝试使用WebSockets,而且我对新的非常酷的技术有一些不同的经验.我写了一个简单的聊天客户端,它使用HTML5实验室的最新版本,我相信是hybi-09草案规范版本.客户端在Chrome(dev通道v14.0)中运行良好.一切都按预期运作.但是,在本机支持WebSockets的每个其他主要浏览器中(FireFox(v6.0b)(是的,我确实启用了WebSockets功能),Safari(v5.1)),由于某种原因它无法连接.这是我的一些客户端代码:
$(document).ready(connect);
function connect() {
if ('WebSocket' in window) {
websocket = new WebSocket('ws://' + window.location.hostname + ':4502/chat');
}
else if ('MozWebSocket' in window) {
websocket = new MozWebSocket('ws://' + window.location.hostname + ':4502/chat');
}
else {
//not supported
return;
}
websocket.onopen = function () {
//do some setup stuff
};
websocket.onclose = function () {
//DOH
};
websocket.onmessage = function (e) {
//Do some stuff with e.data
};
}
Run Code Online (Sandbox Code Playgroud)
和一些(C#)服务器代码:
static void Main(string[] args)
{
var host = …
Run Code Online (Sandbox Code Playgroud) 就像标题所示,我正在尝试为SQL Server中的XML数据列的modify()方法参数化XPath,但遇到了一些问题.
到目前为止,我有:
DECLARE @newVal varchar(50)
DECLARE @xmlQuery varchar(50)
SELECT @newVal = 'features'
SELECT @xmlQuery = 'settings/resources/type/text()'
UPDATE [dbo].[Users]
SET [SettingsXml].modify('
replace value of (sql:variable("@xmlQuery"))[1]
with sql:variable("@newVal")')
WHERE UserId = 1
Run Code Online (Sandbox Code Playgroud)
使用以下XML结构:
<settings>
...
<resources>
<type> ... </type>
...
</resources>
...
</settings>
Run Code Online (Sandbox Code Playgroud)
然后生成此错误:
XQuery [dbo.Users.NewSettingsXml.modify()]: The target of 'replace' must be at most one node, found 'xs:string ?'
现在我意识到修改方法必须不能接受字符串作为路径,但有没有办法完成使用动态SQL的这个缺点?
哦,顺便说一句,我使用的是SQL Server 2008 Standard 64位,但我编写的任何查询都需要兼容2005 Standard.
谢谢!
javascript ×2
sql-server ×2
xml ×2
asp.net-mvc ×1
c# ×1
highcharts ×1
html5 ×1
websocket ×1
xpath ×1