当谷歌机器人出现时,我收到了以下错误:
参数字典包含非可空类型'System.Int32'的参数'id'的空条目,用于'someclass'中的方法'System.Web.Mvc.ActionResult Show(Int32)'.可选参数必须是引用类型,可空类型,或者声明为可选参数.
参数名称:参数
我想知道在这种情况下是否有可能让应用程序抛出404而不是缺少参数异常.
谢谢!
更新以澄清我想要的是,此特定错误的所有情况都会抛出404错误而不是500错误.最好通过编写某种只捕获此错误的包装器.
我目前正在玩Scala开发,但我需要与诸如box2d之类的库集成来处理物理.问题是,这需要依赖于管理其自身状态的外部库.您可以跟踪传递到box2d世界的物体.总结一下有用的方面:
所以我的问题是:
如何以优雅的方式跟踪这些引用(用于函数式编程),以及如何在代码的其余部分中最小化它对纯度的影响?
像国家单子这样的东西在这里我不会帮助我
haskell functional-programming scala referential-transparency
我不确定这是否是最好的方法,但我希望在当前用户的所有请求期间保持用户对象的活动状态.通过阅读几个资源,我了解到你应该创建自己的IPrinciple来保存它.但我不希望每个身份验证请求都触发数据库.关于如何处理这个问题的任何建议?缓存db请求是个好主意吗?
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
User user;
using (HgDataContext hg = new HgDataContext())
{
if (Session["user"] != null)
{
user = (from u in hg.Users where u.EmailAddress == authTicket.Name select u).Single();
} else
{
user = Session["user"] as User;
}
}
var principal = new HgPrincipal(user);
Context.User = principal;
}
}
Run Code Online (Sandbox Code Playgroud) 我的问题实际上包含多个问题.我经常阅读有关使用实时"数据库"为部分客户部署一小部分功能的公司.Ruby on Rails及其生态系统具有部署工具和数据库迁移,可在实时生产或登台环境中部署或回滚此类功能.
我的问题是,如何为asp.net(特别是mvc)应用程序完成这项工作?如何针对实时数据测试新发布的功能?您是否有任何工具可以修改现有数据库并在必要时回滚更改?在部署之前是否进行备份?
更新
也许我应该指出我的问题不是很清楚,在这里得到更多答案将有助于我更好地表达问题.为了方便起见,我将介绍一些我常常与某些客户见面的情况.
我的客户有大量流行的Web应用程序部署.他们没有登台/ QA /测试服务器.(是的,这不是最佳的).他们的应用程序包含的数据是图像,xml文件,用户上传和Sql Server中的数据.在我看来,拥有一些记录,他们的生产数据库和一些虚拟文件不能代替对真实数据进行测试.您如何设计一个工作流程,可以创建一个可接受的环境来模仿生产环境,然后再上线?
另一个更新
我仍然想知道的是,您可以使用哪些工具或程序来获取生产数据(文件,数据库)的实际快照,以便您可以构建自己的问答环境.整个数据库和与之相关的文件太大,无法完全复制到Q&A服务器.但是,如果您只是复制每个表的前几行,它们可能彼此没有关系,并且在整个地方给出随机错误或意外行为,并且不反映实际的生产数据库.
PS.如果有人理解我的目标,并有更好的方式来表达我的问题随时编辑我的!
我很好奇以下是如何完成的
http://kortham.net/temp/fallingBlocks.png
它们似乎在iphone上实现了实时柔和的阴影,它没有可用的模板缓冲区.它在http://www.youtube.com/watch?v=u5OM6tPoxLU似乎非常流畅
有人有想法吗?
我最近一直在阅读关于内存模型的内容,我对这是如何工作感到困惑.
引用http://cis.poly.edu/muller/CS623/weakmemory.htm
如果处理器写入一个新的X然后写一个新的Y,所有其他处理器随后执行读取Y然后读取X,将访问新的Y和新的X,旧的Y和新的X,或旧的X和旧的Y:但没有处理器会访问新的Y和旧的X.这种强烈排序的假设在某种程度上是合理的.然而,当前的计算机制造商建议程序员不依赖于存储器排序.这是因为较新的内存管理系统尝试重新排序内存访问以进行优化.允许重新排序内存请求的系统称为弱排序内存系统(模型).要检查如何使用重新排序来提高性能,请考虑以下汇编程序代码[2].
Load reg1, A // register1 = contents of memory A
Load reg2, B // register2 = contents of memory B
ADD reg3, reg1, reg2 // register3 = register1 + register2
Store reg3, C // contents of memory C = contents of register3
Run Code Online (Sandbox Code Playgroud)
如果我们假设位置B当前在高速缓存中并且位置A没有被高速缓存,那么加载A将花费比B更长的时间而不是等待A,CPU可以从其高速缓存中获取B,隐藏B的延迟:因此CPU可以执行A一旦可用就加入.通过放宽执行的强(顺序)内存模型(即A必须首先加载,然后是B),可以实现更高的性能----但重新排序可能对软件不透明.考虑下面的代码片段,它是可用于实现自旋锁信号量的代码的一部分[2].
我的问题是,如果使用较弱的内存模型可能会导致处理器可以访问新的Y和旧X.它是不是写入相同的内存(ram)或者它的工作方式不同?我假设如果一个进程修改一个变量而另一个进程在此之后读取它,它会读取最新的值.
另一件我不确定的是哪个组件允许内存访问重新排序,我现在的假设是允许编译器重新排序指令.但CPU是否也可以对它们进行重新排序?
谢谢
嗨,我在控制器中定义了以下两个操作
[Authorize]
[HttpGet]
public ActionResult Edit()
{
ViewData.Model = HttpContext.User.Identity;
return View();
}
[Authorize]
[HttpPost]
public ActionResult Edit(User model)
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我将编辑后的数据发布到第二个操作,我会收到以下错误:
Server Error in '/' Application.
An item with the same key has already been added.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: An item with the same key has …Run Code Online (Sandbox Code Playgroud) 我试图了解内存屏障是如何工作的,为什么使用它以及在什么情况下应该使用它.但是我不完全确定在什么情况下安排指令顺序会更有效率,有人能给我一个例子吗?
我基本上想知道是否可以优化此代码:
AmountComments = Int32.Parse(r.Attribute("AmountComments").Value)
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想写一些类似的东西
AmountComments = r.Attribute("AmountComments")
Run Code Online (Sandbox Code Playgroud)
r将是XElement类型的xml标记,它在Linq查询之前选择.
c# ×5
asp.net-mvc ×4
.net ×3
cpu ×1
haskell ×1
iphone ×1
javascript ×1
linq ×1
memory-model ×1
opengl-es ×1
scala ×1
xml ×1