我们的应用程序将从客户上传的文件存储到blob存储.这些文件在不同方(我们的客户及其供应商)之间交换.有没有办法检查上传的文件是否有病毒?反恶意软件服务似乎只是检查虚拟机,但我无法获得有关使用它来检查文件即服务的任何信息.
一个很好的解决方案是,如果我们可以将这样的文件存储在Azure存储中作为"保留"文件,直到它被检查.然后我们需要一个服务来检查这个文件并返回结果.如果该文件没有病毒,我们可以将其移动到最终目的地.
就在一年前,微软发布了一些有关Helios项目的帖子.这是一个OWIN实现,可以轻松地使用IIS自行托管您的服务器.最后一个Nuget包来自2014年3月的Project Helios.
有人知道这个项目的现状是什么?它们是否包含在ASP.NET vNext实现中?
我的问题:我从业务代码中调用存储过程.此调用处于显式事务中.存储过程有时会调用另一个来将某些内容写入数据库.即使事务回滚,此数据也应保留在数据库中.类似的情况是当你想在日志表中写一些东西并且应该保留日志消息时(这不是我的情况,这只是一个类似的要求).
如何从外部事务中排除第二个存储过程?我认为我正在寻找像Oracle中的"自治事务"这样的东西.我寻找可能的仿真,但所有的解决方案看起来都不是很"好"(创建一个环回服务器,添加一些.NET方法,......)
有任何想法吗?谢谢!
我尝试了 Azure 中 Blob 存储的静态网站功能,非常棒!只需复制我的 SPA 静态文件(js、html、css...),一切正常。现在我的问题是:如何更新文件并确保它们一致?
通过应用服务,我可以使用部署槽并在它们准备好时进行交换。如果我只是复制一个新版本,客户端可能会得到不一致的版本(一些文件来自旧版本,另一些文件来自新版本)。
这对于我的 .js 文件来说是一个大问题。我可以使用事务之类的东西来使我的文件在所有文件都被复制后可见吗?
我将我的模型注释为:
public class Instance
{
[Required]
public string Name { get; set; }
public string Description { get; set; }
[Required]
public string DBServer { get; set; }
[Required]
public string Database { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在post方法中,如果没有发送任何内容但Model.State为true,则为值获取null.如果没有发送任何东西,国家怎么可能是真的?下一个问题是CreateErrorResponse方法在我调用它时会引发异常(可能是因为该值为null).
public HttpResponseMessage Post([FromBody]Instance value)
{
if (value != null && ModelState.IsValid)
{
...
}
else
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
Run Code Online (Sandbox Code Playgroud)
编辑: 因为看起来我没有解释得对.我现在尝试一些截图.
案例1
我使用Fiddle发布了正确的值,一切都按预期工作.ModelState.IsValid为true.
情况2 我发布了一个缺少必填字段的值(DBServer),然后一切都按预期工作.ModelState.IsValid为false.
案例3 我的问题.我发送没有信息的帖子请求,ModelState.IsValid为true.这看起来很奇怪,我想知道原因.谢谢大家的答案.