我一直在寻找事件的描述"预览******",就像每个元素都有事件KeyDown和PreviewKeyDown.有什么不同(不是一个是附加事件而一个不是,真正的传统差异和编程方式的区别)
在从Control派生的任何类中,你可以覆盖这两个方法.. OnKeyDown和OnPreviewKeyDown,现在我正在编写我的自定义控件,我应该使用哪种方法?两者之间有什么区别.
有什么区别REST和WebService(SOAP),我查看了facebook api,他们使用HTTP头和一些参数(可能是xml或非)并在xml中返回结果,其中SOAP完全相同,HTTP头+ xml参数和返回标头+ xml.
REST还需要一些经过身份验证的令牌,否则SOAP会使用http会话,这与用于身份验证和其他信息的令牌完全相同.我只能看到SOAP是REST的高级版本?
或者还有其他性能考虑因素吗?阅读REST只是谈论非常高级别的客户端服务器通信,但即使SOAP也完全相同.任何人都可以指出我可以定义REST和SOAP的正确边界.
我们在.net中透明地使用了很多SOAP,但是我只是想知道它是否真的值得注意REST,目前一切都运行得非常流畅.
我知道REST是一种架构而SOAP是一种协议,但我的问题是详细说明,目前SOAP的ASP.NET WebService实现是否具有REST架构?
我正在使用Parallel.ForEach并且我正在做一些数据库更新,现在没有设置MaxDegreeOfParallelism,双核处理器机器导致sql客户端超时,否则四核处理器机器不知何故不会超时.
现在我无法控制我的代码运行的哪种处理器内核可用,但是我可以使用MaxDegreeOfParallelism更改某些设置,这些设置可能会同时运行较少的操作而不会导致超时?
我可以增加超时但它不是一个好的解决方案,如果在较低的CPU上我可以同时处理较少的操作,这将减少对CPU的负载.
好的我也读过所有其他帖子和MSDN,但是将MaxDegreeOfParallelism设置为较低值会让我的四核机器遭受损失吗?
例如,无论如何,如果CPU有两个内核,那么使用20,如果CPU有四个内核,那么40?
c# .net-4.0 parallel-extensions task-parallel-library parallel.foreach
我不是在寻找数据库中流文件内容的替代方案,事实上我正在寻找问题的根源,这是运行文件直到IIS 6我们在经典模式下运行我们的应用程序,现在我们将IIS升级到7我们是在管道模式下运行应用程序池并且此问题已启动
我有一个处理程序,我必须向客户端请求提供大文件.我面临以下问题,
文件平均大小为4到100 MB,因此我们考虑80MB文件下载案例.
缓冲,缓慢启动
Response.BufferOutput = True;
Run Code Online (Sandbox Code Playgroud)
这导致文件启动非常慢,因为用户下载甚至进度条直到几秒钟才出现,通常是3到20秒,原因是,IIS首先读取整个文件,确定内容长度然后开始文件传输.文件正在视频播放器中播放,并且运行速度非常慢,但iPad仅先下载文件的一小部分,因此它可以快速运行.
缓冲关闭,无内容长度,快速启动,无进度
Reponse.BufferOutput = False;
Run Code Online (Sandbox Code Playgroud)
这导致立即启动,但最终客户端(典型的浏览器,如Chrome)不知道内容长度,因为IIS也不知道,因此它不显示进度,而是说下载了X KB.
缓冲关闭,手动内容长度,快速启动,进度和协议违规
Response.BufferOutput = False;
Response.AddHeader("Content-Length", file.Length);
Run Code Online (Sandbox Code Playgroud)
这样可以在Chrome等中立即正确下载文件,但在某些情况下,IIS处理程序会导致"远程客户端关闭连接"错误(这种情况非常频繁),而其他WebClient会导致协议违规.这发生在所有请求的5%到10%,而不是每个请求.
我想发生的事情是,当我们不进行缓冲时,IIS不会发送任何名为100的内容,并且客户端可能断开连接而不期望任何输出.但是,从源读取文件可能需要更长的时间,但在客户端我增加了超时但似乎IIS超时并且无法控制.
无论如何,我可以强制响应发送100继续,不让任何人关闭连接?
UPDATE
我在Firefox/Chrome中找到了以下标题,这里似乎没有任何异常的协议违规或坏标题.
Access-Control-Allow-Headers:*
Access-Control-Allow-Methods:POST, GET, OPTIONS
Access-Control-Allow-Origin:*
Access-Control-Max-Age:1728000
Cache-Control:private
Content-Disposition:attachment; filename="24.jpg"
Content-Length:22355
Content-Type:image/pjpeg
Date:Wed, 07 Mar 2012 13:40:26 GMT
Server:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
Run Code Online (Sandbox Code Playgroud)
更新2
转向回收仍然没有提供太多,但我已经将我的MaxWorkerProcess增加到8,现在我的错误数量减少了.
但平均而言,在一秒内有200个请求,2到10个请求失败..,这几乎每隔一秒发生一次.
更新3
继续5%的请求失败"服务器提交了协议违规.部分= ResponseStatusLine",我有另一个程序从使用WebClient的网络服务器下载内容,并且平均每次发出4-5次这个错误有5%的请求失败.无论如何都有追踪WebClient的失败?
问题重新定义
收到零字节文件
IIS由于某种原因关闭连接,在WebConfig的客户端,我收到0字节的文件,这不是零字节,我们做SHA1哈希检查,这告诉我们在IIS Web服务器中,没有记录错误.
这是我的错误,它解决了因为我们正在使用Entity Framework,它正在读取脏(未提交的行),因为读取不在事务范围内,将其放入事务范围已解决此问题.
提升协议违规例外
WebClient抛出WebException,说"服务器提交了协议违规.Section = ResponseStatusLine.
我知道我可以启用不安全的头解析,但这不是重点,当它是我的HTTP处理程序发送正确的标头,不知道为什么IIS发送任何额外的(在Firefox和Chrome上检查,没有什么异常),这只发生2百分之几.
更新4
发现sc-win32 64错误,我在某处读到MinBytesPerSecond的WebLimits必须从240更改为0,仍然一切都是相同的.但是我注意到,每当IIS记录64个sc-win32错误时,IIS就会将HTTP状态记录为200但是有一些错误.现在我无法打开200的Failed Trace Logging,因为它会导致大量文件.
通过增加MinBytesPerSecond以及禁用Sessions来解决上述两个问题,我已经添加了详细的答案,总结了每一点.
我有Amazon S3对象,对于每个对象,我都设置了
Cache-Control: public, max-age=3600000
Run Code Online (Sandbox Code Playgroud)
那大概是41天.
我的Amazon CloudFront Distribution设置了最小TTL,也有3600000.
这是清除缓存后的第一个请求.
GET /1.0.8/web-atoms.js HTTP/1.1
Host: d3bhjcyci8s9i2.cloudfront.net
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Run Code Online (Sandbox Code Playgroud)
而响应是
HTTP/1.1 200 OK
Content-Type: application/x-javascript
Content-Length: 226802
Connection: keep-alive
Date: Wed, 28 Aug 2013 10:37:38 GMT
Cache-Control: public, max-age=3600000
Last-Modified: Wed, 28 Aug 2013 10:36:42 GMT
ETag: "124752e0d85461a16e76fbdef2e84fb9"
Accept-Ranges: bytes
Server: AmazonS3
Age: 342557
Via: 1.0 6eb330235ca3971f6142a5f789cbc988.cloudfront.net (CloudFront)
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: 92Q2uDA4KizhPk4TludKpwP6Q6uEaKRV0ls9P_TIr11c8GQpTuSfhw==
Run Code Online (Sandbox Code Playgroud)
即使亚马逊明确发送Cache-Control,Chrome仍然会发出第二个请求,而不是从Cache中读取它. …
google-chrome cache-control amazon-s3 http-headers amazon-cloudfront
我有一个控制器,和一个定义的方法......
[HttpPost]
public ActionResult UpdateUser(UserInformation model){
// Instead of throwing exception
throw new InvalidOperationException("Something went wrong");
// I need something like
return ExecutionError("Error Message");
// which should be received as an error to my
// $.ajax at client side...
}
Run Code Online (Sandbox Code Playgroud)
异常问题
我需要一些简单的方法来报告我的$ .ajax调用的一些自定义http状态,以便它在客户端产生错误,但我不想抛出错误.
UPDATE
我无法更改客户端脚本,因为它与其他数据源不一致.
到目前为止,HttpStatusCodeResult应该可以正常工作,但这是导致此问题的IIS.无论我设置了什么错误消息,尝试了所有答案,我仍然只收到默认消息.
我想使用.Net Security命名空间中提供的加密算法,但是我试图了解如何生成密钥,例如AES算法需要256位,即16字节密钥,以及一些初始化向量,这也是几个字节.
我可以在Key和IV中使用任何值的组合吗?例如Key和IV中的所有零都有效吗?我知道算法的细节做了很多xors,所以零不会有任何好处,但这些算法是否有任何限制?
或者我是否必须使用某些程序生成密钥并将其永久保存在某处?
我希望在加密后将数据存储在数据库中,安全配置文件数据(如用户名,密码,电话号码等)和密钥将仅供连接字符串中提到的数据库用户使用,并且可供管理员使用.
我知道COLUMNS_UPDATED
,我需要一些快速的快捷方式(如果有人做了,我已经制作了一个,但如果有人可以节省我的时间,我会恭维它)
我需要基本上只有更新列值的XML,我需要这个用于复制目的.
SELECT*FROM inserted为我提供了每一列,但我只需要更新的列.
像下面这样......
CREATE TRIGGER DBCustomers_Insert
ON DBCustomers
AFTER UPDATE
AS
BEGIN
DECLARE @sql as NVARCHAR(1024);
SET @sql = 'SELECT ';
I NEED HELP FOR FOLLOWING LINE ...., I can manually write every column, but I need
an automated routin which can work regardless of column specification
for each column, if its modified append $sql = ',' + columnname...
SET @sql = $sql + ' FROM inserted FOR XML RAW';
DECLARE @x as XML;
SET @x …
Run Code Online (Sandbox Code Playgroud) 我试图修改App.cs并从代码后面加载WPF XAML文件,但它不能正常工作.
无论我试图将其设置为StartupUri,它都不会启动,程序将在此之后退出.
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
LoginDialog dlg = new LoginDialog();
if (dlg.ShowDialog() != true)
return;
switch (dlg.ChoiceApp) {
case ChoiceApp.CustomerEntry:
StartupUri = new Uri("/MyApp;component/Forms/CustomerEntry.xaml",
UriKind.Relative);
break;
case ChoiceApp.VendorEntry:
StartupUri = new Uri("/MyApp;component/Forms/VendorEntry.xaml",
UriKind.Relative);
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我甚至做了跟踪并发现LoginDialog工作正常并正确返回值,但设置"StartupUri"不起作用.
我在反向程序集中检查了在OnStartup之后调用App的DoStartup方法,所以从技术上讲,我的StartupUri必须加载,但它没有,在App.xaml启动uri根本没有定义.
注意:Bug已确认
我注意到ShowDialog设置了Application.MainWindow,当对话结束时,它将其设置为null,并且由于此设置,在OnStartup或Startup事件中调用Modal Dialog后,StartupUri不起作用.
关于无效的uri或类似的东西没有错误或例外.
这个方法在没有在Startup事件或OnStartup中调用DialogBox的情况下工作,我认为在这个方法上调用showdialog会导致它的主窗口设置为过期窗口,并在此之后关闭.
这是我想要实现的,我想将ASP.NET MVC的AREA分离为纯单个DLL.
它们中的每一个都是单独的ASP.NET MVC区域,具有自己的默认CSHTML或ASPX页面.从长远来看,安装,迁移和维护大量页面(包括资源,javascripts等)是非常痛苦的.因为大多数这些都不会改变.
我的最终网站将是这样的.
\MvcApplication
\bin
\MvcApplication.bin
\Blog.dll
\Forums.dll
\Controllers
\..
\Models
\..
\Views
\..
\Global.asax
\Web.config
Run Code Online (Sandbox Code Playgroud)
没有添加任何东西,只是删除Blog.dll,我的应用程序应该支持/博客及其所有页面.如果我想自定义一些东西,我可以添加区域,并只添加cshtml页面..
\MvcApplication
\bin
\MvcApplication.bin
\Blog.dll
\Forums.dll
\Areas
\Blog
\Views
\Shared
\BlogLayout.cshtml <-- this will override the look
\Controllers
\..
\Models
\..
\Views
\..
\Global.asax
\Web.config
Run Code Online (Sandbox Code Playgroud)
这将有助于重用ASP.NET区域插件,只需将dll放在bin文件夹中即可.但是web.config可能需要进行一些更改,但很可能我们会在数据库中保存配置值,并且只需要web.config中的"Entity Framework连接字符串".
我的挑战(问题)
c# ×3
asp.net ×2
asp.net-mvc ×2
wpf ×2
.net ×1
.net-4.0 ×1
ajax ×1
amazon-s3 ×1
controller ×1
download ×1
encryption ×1
events ×1
http-headers ×1
iis ×1
plugins ×1
razor ×1
rest ×1
security ×1
soap ×1
sql ×1
sql-server ×1
sql-update ×1
startup ×1
triggers ×1
uri ×1
web-services ×1