小编Aru*_*nas的帖子

Chrome浏览器不会显示HTTP处理程序生成的图像

基本上我有一个网站,提供一些文件(主要是办公室)的HTML预览.生成的HTML片段包含在同一网站返回的页面中,但是HTTP处理程序从另一个站点返回图像,其中包含以下链接:

<img width="50" height="50" src="http://portal/Service/GetFile.asxh?id=123&inline=true">
Run Code Online (Sandbox Code Playgroud)

出于某种原因,除了Chrome之外的所有浏览器(例如IE6/7/8,Firefox,Opera,Safari)都显示一切都很好,但是对于这些图像,Chrome显示"破碎的图像"图标.如果我选择"在新标签中打开图像",则图像显示得很好.

编辑我以为我已经解决了这个问题,但显然与Fiddler打开它工作正常.

我在代码中留下了context.Response ="utf-8",但删除它没有区别.

头:

HTTP/1.1 200 OK
Date: Wed, 05 Jan 2011 14:26:57 GMT
Server: Microsoft-IIS/6.0
MicrosoftOfficeWebServer: 5.0_Pub
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Transfer-Encoding: chunked
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Content-Type: image/jpeg
Run Code Online (Sandbox Code Playgroud)

码:

                    context.Response.ContentType = file.ContentType;

                    context.Response.Cache.SetCacheability(HttpCacheability.NoCache);

                    byte[] buff = new byte[BuffSize];
                    using (var stream = repository.GetFileContentsAsStream(file.ContentId))
                    {
                        int bytesRead;
                        do
                        {
                            bytesRead = stream.Read(buff, 0, BuffSize);
                            if (bytesRead > 0)
                            {
                                context.Response.OutputStream.Write(buff, 0, bytesRead);
                            }
                        } while (bytesRead > 0);
                    }

                    context.Response.Flush(); …
Run Code Online (Sandbox Code Playgroud)

html asp.net google-chrome

10
推荐指数
1
解决办法
8917
查看次数

CQRS:根据需求建立阅读模型?

据我所知,CQRS主张将读取模型与域模型分开,并为每个必要的域模型投影设置特定的读取模型.

从使用角度来看,读取模型的存储和检索方式应该是透明的 - 您可以发出查询并获取读取模型,而无需关心它是如何制作的.

许多示例和文章使用单独的表来存储读取模型,并通过响应域模型更改来重新生成它们.

我不喜欢这种方法,原因如下:

  • 并非所有可能的读取模型都需要经常使用;
  • 需求更改可能会使现有的读取模型无效,因此需要重新生成所有这些模型;
  • 如果由于某种原因,读取模型包含无法在生成时存储但需要计算的属性,则必须使用存储过程/函数/视图;
  • 如果在域模型更改上使用应用程序级缓存,则读取模型与域模型是分开的,您需要通知所有应用程序需要从缓存中逐出旧的读取模型;
  • 有时完全非规范化复杂对象图是不可能也不可取的,因此您需要具有与特定域实体版本一致的读取模型,即它们需要在同一事务中生成;
  • 某些域实体具有频繁更改但需要包含在每个读取模型中的属性.

基于此,我想有查询服务应该:

  • 对于需要频繁生成的读取模型和/或域实体的简单投影:不要存储它们,而是通过查询数据库中的域模型实体通过ORM生成它们;
  • 对于不需要经常生成并且是复杂的域实体投影的读取模型,生成它们并存储在数据库表中.

另外我看到有些人建议将读取模型存储为blob.将读取模型存储为blob的问题在于,如果您需要搜索它们,您将需要提取索引属性,如果您需要全文搜索,您甚至必须以全文可以理解的格式存储它们工具.

正如您所看到的,我基本上希望只有查询执行后才能读取存在的模型,而不是基于域更改事件生成的模型.这个解决方案对CQRS是否可以接受?我正在研究CQRS的原因是通过将可缓存的视图模型与用户操作处理分离来改进应用程序体系结构,在用户操作之后使用支持AJAX的Web应用程序进行异步更新,并通过将业务逻辑全部放在一起来减少初级开发人员生成不可维护代码的空间对我来说甚至非忠实地实施CQRS似乎是迈向正确方向的良好步骤.

architecture design-patterns cqrs

6
推荐指数
1
解决办法
3260
查看次数