我试图通过jQuery从客户端使用ASMX Web服务gzip JSON响应.
我的web.config已经像这样设置了httpCompression :(我正在使用IIS 7)
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"
staticCompressionDisableCpuUsage="90" staticCompressionEnableCpuUsage="60"
dynamicCompressionDisableCpuUsage="80" dynamicCompressionEnableCpuUsage="50">
<dynamicTypes>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="application/x-javascript" enabled="true"/>
<add mimeType="text/css" enabled="true"/>
<add mimeType="video/x-flv" enabled="true"/>
<add mimeType="application/x-shockwave-flash" enabled="true"/>
<add mimeType="text/javascript" enabled="true"/>
<add mimeType="text/*" enabled="true"/>
<add mimeType="application/json; charset=utf-8" enabled="true"/>
</dynamicTypes>
<staticTypes>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="application/x-javascript" enabled="true"/>
<add mimeType="text/css" enabled="true"/>
<add mimeType="video/x-flv" enabled="true"/>
<add mimeType="application/x-shockwave-flash" enabled="true"/>
<add mimeType="text/javascript" enabled="true"/>
<add mimeType="text/*" enabled="true"/>
</staticTypes>
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
</httpCompression>
<urlCompression doDynamicCompression="true" doStaticCompression="true"/>
Run Code Online (Sandbox Code Playgroud)
通过提琴手我可以看到正常的aspx和其他按压工作正常.但是,jQuery ajax请求和响应应该工作,只有没有得到压缩.
我错过了什么?
我有一系列具有不同参数签名的函数:
public void function1 (string s1, string s1, string s3, string s4) {...}
public void function2 (int i1, int i2, string s3, string s4) {...}
public void function3 (int i1, string s2, int i3, string s4) {...}
.
.
etc //some 30 odd functions
Run Code Online (Sandbox Code Playgroud)
调用每个函数可能会抛出一组异常,如TimeoutException,CommunicationException等(是的,这些是WCF代理函数)
现在我必须将这些调用包装在try catch块中,但DRY原则说我写错了很多相同的try catch块:
public void Interfacefunction1 (...) {
try {
function1 (...);
}
catch (TimeoutException) {
taskResult.Success = false;
taskResult.Message = Resources.ServerConnectionBroke;
}
catch (CommunicationException) {
taskResult.Success = false;
taskResult.Message = Resources.CommunicationFailed;
}
}
//and... …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下指令将文件上传到sails.js应用程序服务器: ng-file-upload
我的客户端上传已经选择的图像是这样的:
$upload.upload({
url:'upload/item-image',
headers:{
'Content-Type': 'multipart/form-data'
},
data:{blah:'blah'},
file: $scope.uploadFile,
fileName:$scope.uploadFile.name
}).success(function(data){
console.log(data);
}).error(function(err){
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
我在服务器上处理上传的sails.js控制器方法如下所示:
upload: function (req, res) {
req.file('item-image').upload(function (err, files) {
if (err)
return res.serverError(err);
if(!files.length)
return res.serverError('No files received for upload.');
var file = files[0];
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
但是,在调用服务器函数时,并且正文上的json数据存在,req.file('无论放在何处')回调没有找到任何文件.
提前致谢.
.net ×1
angularjs ×1
asmx ×1
c# ×1
compression ×1
exception ×1
file-upload ×1
gzip ×1
iis-7 ×1
javascript ×1
node.js ×1
sails.js ×1
web-services ×1