小编Gre*_*ter的帖子

为什么谷歌浏览器有时会警告下载的PDF会损害您的计算机?

我们有一个网站,可以下载多个PDF文件.PDF可能是静态的,也可能是动态生成的.它们使用以下几种机制之一下载(静态URL,回发/重定向/元刷新/等).对于某些PDF文件,Chrome会毫无怨言地下载它们.对于其他人,它会警告用户"此类文件可能会损害您的计算机.您确定要下载..."并需要额外点击.

Chrome使用哪些信息来决定是否显示该消息?显然,这不仅仅是文件是PDF的事实.

为了清楚起见,我想在服务器端做一些事情(我们使用IIS/ASP.NET,如果重要的话)以防止消息出现.我对每个用户在浏览器中禁用该消息的解决方案不感兴趣(如果可能的话).

谢谢.

google-chrome

30
推荐指数
1
解决办法
2万
查看次数

为什么不.Except(LINQ)比较正确的事情?(使用IEquatable)

我有两个我自己的引用类型对象的集合,我编写了自己的IEquatable.Equals方法,我希望能够在它们上使用LINQ方法.

所以,

List<CandyType> candy = dataSource.GetListOfCandy();
List<CandyType> lollyPops = dataSource.GetListOfLollyPops();
var candyOtherThanLollyPops = candy.Except( lollyPops );
Run Code Online (Sandbox Code Playgroud)

根据.Except的文档,不传递IEqualityComparer应该导致EqualityComparer.Default用于比较对象.Default比较器的文档是这样的:

"Default属性检查类型T是否实现System.IEquatable泛型接口,如果是,则返回使用该实现的EqualityComparer.否则返回使用由T.提供的Object.Equals和Object.GetHashCode的覆盖的EqualityComparer."

所以,因为我为我的对象实现IEquatable,它应该使用它并且工作.但是,事实并非如此.在我覆盖GetHashCode之前它不起作用.事实上,如果我设置一个断点,我的IEquatable.Equals方法永远不会被执行.这让我认为根据其文档,它与计划B一致.我知道重写GetHashCode是一个好主意,无论如何,我可以让它工作,但我感到不安的是它的行为方式与它自己的文档所说的不一致.

它为什么不按照它所说的那样做呢?谢谢.

linq

26
推荐指数
2
解决办法
6995
查看次数

在非开发环境中省略了从Web API方法返回的错误消息

我有一个Web API控制器POST方法,在本地和测试服务器上运行良好.如果一切顺利,它会返回:

new HttpResponseMessage( HttpStatusCode.Created )
Run Code Online (Sandbox Code Playgroud)

如果出现问题,它会返回:

new HttpResponseMessage<IEnumerable<string>>( usefulMessages, HttpStatusCode.BadRequest );
Run Code Online (Sandbox Code Playgroud)

问题是,当我向测试服务器发出导致错误的请求时,我收到了错误的请求代码,但我从未看到过这些消息.如果我向本地计算机发出完全相同的请求,我会看到消息.以下输出来自我自己的工具:

发送请求到我的本地机器我得到:

Status code: 400 (BadRequest)
Response data: ["Error message one", "Error message two"]
Run Code Online (Sandbox Code Playgroud)

向测试服务器发送请求我得到:

Status code: 400 (BadRequest)
Response data: Bad Request
Run Code Online (Sandbox Code Playgroud)

正在运行的代码完全相同.数据库是一样的.除服务请求的服务器外,一切都是一样的.我甚至有代码通过电子邮件发送自己的错误消息,所以我知道服务器正在生成正确的错误消息并且行为正确.这可能是一个IIS的东西(比如customErrors = RemoteOnly for Web API)?不仅从响应数据中省略了错误消息,而且发生了短语"错误请求"而不是放在那里.

有任何想法吗?谢谢.

asp.net iis asp.net-web-api

26
推荐指数
3
解决办法
2万
查看次数

Excel可以将单元格解释为HTML吗?

我正在使用Aspose.Cells以编程方式构建Excel文档.这非常有效.但是,其中一个单元格是一个原始HTML块.我想知道是否有可能告诉Excel(以任何方式,包括GUI - 您不需要知道Aspose API)来解析并将单元格显示为HTML.现在,它只是以文本格式,标签和所有格式显示为原始HTML.

我知道Excel能够将HTML粘贴到其中,但看起来它只是自己解析它然后Excel-ifies it for it,并且它不存储HTML,所以它实际上并不解析它并显示它作为HTML.另外,我无法弄清楚如何复制这种粘贴功能.

谢谢.

html excel aspose aspose-cells

24
推荐指数
2
解决办法
5万
查看次数

WCF超时是一场噩梦

我们有一堆WCF服务几乎一直在使用,使用各种绑定,端口,最大大小等.关于WCF的超级令人沮丧的事情是,当它(很少)失败时,我们无法找到它为什么它失败.有时您会收到如下所示的消息:

System.ServiceModel.CommunicationException:套接字连接已中止.这可能是由于处理消息的错误或远程主机超出接收超时或基础网络资源问题引起的.本地套接字超时为'01:00:00'.---> System.IO.IOException:无法从传输连接读取数据:远程主机强制关闭现有连接.

问题是它给你的本地套接字超时只是一个方便的尝试.它可能是也可能不是问题的原因.但好的,有时网络有问题.没什么大不了.我们可以重试或者其他什么.但这是一个巨大的问题.除了没有告诉你究竟哪个超时(如果有的话)导致失败("你的服务器端接收超时",或者某些东西,将会有所帮助)之外,WCF似乎有两种类型的超时.

超时类型#1)超时,如果增加,将增加您的操作成功的机会.所以,相关的超时是一个小时,你上传一个需要一小时二十分钟的巨大文件.它失败.你增加超时,它成功.我对这种类型的超时没有任何问题.

超时类型#2)超时仅定义您必须等待服务实际失败的时间并给出错误,但修改此超时的值不会影响成功的可能性.基本上,在服务请求的第一秒发生了某些事情,这会使事情变得糟糕.它永远不会恢复.WCF不会神奇地为您重试网络连接.很好,有时建立网络连接并不顺利.但是,如果你的超时是2小时,你必须等待整整 2个小时,它才有可能在它最终确认它不起作用并给你错误之前工作.

但是你在两种情况下看到的错误都是一样的.超时类型#2,它仍然看起来你正在超时.但是,您可以将所有超时时间增加到4年,而它所要做的就是花费4年时间才能收到错误消息.我知道类型#2存在是因为我可以做一个已知在成功后不到一分钟就完成的操作,并且需要2个小时才能失败.但是,如果我杀了它并重试,它会很快成功.(如果您想知道为什么在不到一分钟的操作中可能会有2小时超时,有时我会使用更大的文件运行操作,这可能需要一个多小时.)

因此,为了解决类型#2的问题,您希望您的超时非常快,以便您立即知道是否存在问题.然后你可以重试.但是难以克服的问题是因为我不知道哪些超时是失败的原因,我不知道哪种超时是#1型,哪些是#2型.可能有一个超时(假设客户端发送超时)在某些情况下类似于#1类型而在其他情况下类似#2.我不知道,我无法找到答案.

有没有人知道如何追踪Type#2超时,所以我可以将它们设置为低值而不必缩短实际(读取:类型#1)超时并降低成功的机会?

谢谢.

澄清第2类超时以回应Andrew Anderson的评论:

我的信念是客户端请求和开始在服务器上执行的代码之间出现问题.在我们有服务器代码指示部分进度的所有情况下,如果没有完成整个操作,它就永远不会完成一些操作.因此,服务器代码永远不会执行,执行所需的时间是无关紧要的(除了它影响我们首先设置我们的超时值以适应它).

.net wcf

21
推荐指数
1
解决办法
4082
查看次数

我如何格式化,所以方法参数垂直堆叠,每行一个?

我有一个方法,我想格式化如下:

public static IQueryable<ThingRequest> GetThings( this EntityContext one
                                                , int? two = null
                                                , int? three = null
                                                , int? four = null
                                                , int? five = null
                                                , String six = null 
                                                , IEnumerable<String> seven = null) {
Run Code Online (Sandbox Code Playgroud)

基本上,如果方法定义超出了行的长度,我希望每行有一个参数.我不太关心逗号(如果它们出现在每一行的末尾,那很好).

但R#格式化它,而不是:

public static IQueryable<ThingRequest> GetThings( this EntityContext one, int? two = null, int? three = null, int? four = null, int? five = null,
                                                  String six = null, IEnumerable<String> seven = null ) {
Run Code Online (Sandbox Code Playgroud)

...所以,它排成一行,但每行有几个参数,很难找出任何一个参数.

顺便说一下,当调用方法时,如果最大行长度超过,它会逐行堆叠参数(即使在这种情况下,我几乎不喜欢它).

我已经进入了R#选项并探索了各种各样的复选框,但我看不出如何改善我的情况.想法?

c# resharper resharper-6.0

19
推荐指数
1
解决办法
6358
查看次数

从DbDataReader读取数据的最快方法是什么?

在以下代码中,command是已经设置的DbCommand:

using( var dataReader = command.ExecuteReader() /*The actual execution of the query takes relatively little time.*/ ) {
                while( dataReader.Read() ) {
                    // These are what take all of the time. Replacing them all with reader.GetValues( myArray ) has no impact.
                    val0 = dataReader.GetValue( 0 );
                    val1 = dataReader.GetValue( 1 );
                    val2 = dataReader.GetValue( 2 );
                }
            }
Run Code Online (Sandbox Code Playgroud)

我目前正在处理的查询的大部分时间都花在了GetValue调用上.它是否为每个GetValue调用进行数据库往返?看起来似乎是这样,这看起来非常低效.正如代码所指出的那样,尝试使用GetValues()一次性完成它并没有什么不同.有没有办法一次性获得整行?更好的是,有没有办法一次性获得整个结果集?

谢谢.

.net c# database

18
推荐指数
2
解决办法
3万
查看次数

当网站停止时,Oracle数据提供程序会挂起IIS工作进程

我们在Oracle 11g第2版中遇到了一个令人讨厌的问题,其中w3wp进程接管整个处理器核心,并且调试显示Oracle数据提供程序无限地抛出ThreadAbortExceptions.开发人员通过执行以下操作找到了此问题:

1)浏览本地使用Oracle数据连接的网站(http:// localhost/OracleWebSite - 我们为所有站点使用IIS,而不是ASP.NET dev服务器).这可确保w3wp进程正在运行,并且应用程序池中存在活动的Oracle连接池.

2)停止网站(或在相关网站上的Visual Studio中执行Rebuild All操作).

我们在受影响的应用程序(所有Oracle Web应用程序)中的Oracle连接处理已经建立并且功能强大.如果我们禁用连接池,则不会发生此问题.Oracle 11g第1版中不会发生此问题.

asp.net oracle iis oracle11g

12
推荐指数
2
解决办法
1万
查看次数

通过WCF进行文件下载比通过IIS慢

下面的方法(我希望它没有犯任何错误,同时为这篇文章大大简化它)正常工作并使用net.tcp协议上的流传输模式进行设置.问题是性能明显差于通过IIS通过http下载相同的文件.为什么会这样,我可以改变什么来改善性能呢?

Stream WebSiteStreamedServiceContract.DownloadFile( string filePath ) {
    return File.OpenRead( filePath );
}
Run Code Online (Sandbox Code Playgroud)

最后,WCF是否负责妥善处理我的流,并且它在这方面做得好吗?如果没有,我应该做什么呢?

谢谢.

streaming wcf

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

Oracle查询从.NET应用程序运行缓慢(或失败),但SQL Developer的运行速度很快

我们使用ODP.NET在Oracle数据库上执行查询,通常它工作正常.但是,有一个特定的数据库,以及该数据库中的特定视图,我们无法从.NET完成查询.例如:

SELECT some_varchar_field FROM the_view WHERE ROWNUM < 5;
Run Code Online (Sandbox Code Playgroud)

如果我从Oracle SQL开发人员中执行此查询,则会在不到一秒的时间内完成.如果我使用ODP.NET从我们的.NET应用程序执行相同的查询,它会挂起并最终产生"ORA-03135:连接丢失联系"错误.我认为将其限制为几行可以消除它作为FetchSize问题的可能性.

我可以成功执行其他查询,但它们从我们的程序比从SQL Developer慢.再一次,我意识到SQL Developer最初只获取前50行的数据,但我认为ROWNUM条件取决于该等式.

Oracle SQL Developer使用的连接或命令与我们的应用程序使用的连接或命令有什么不同会导致速度差异?

不幸的是,我没有访问服务器(除了对它运行Oracle查询).

谢谢.

更新:我已经尝试与Microsoft的Oracle提供程序进行相同的查询,并且执行速度非常快.不幸的是,该提供商已被弃用,因此这不是一个长期解决方案.

.net oracle odp.net

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