Web Services Web服务-操作已超时

mjqavswn  于 2022-11-15  发布在  其他
关注(0)|答案(4)|浏览(169)

我正在进行的项目如下:我有一个加密数据(Des,3Des)的Java Web服务。数据是从一个C#应用程序发送的。我想用它加密/解密一个1 MB大小的文件。我会得到一个异常。
文件以bitformat的形式放在byte[]中,并发送到Java Web服务进行加密/解密。Web服务完成后,需要将加密/解密的数据发送回来。
对于小文件,我没有遇到任何问题,但对于大小为1 MB或更大的文件,C#应用程序中会抛出异常,错误消息如下:* 未处理WebException:操作已超时 *
大约在以下时间后引发此错误:1分40秒
我读过StackOverflow上的不同帖子,但它们似乎总是与WebRequest和WebResponse一起工作。我不使用它们,我用来调用Web服务的代码是:

public byte[] TEncode(byte[] input, byte[] key)
{
    return _webservice.TDesEncode(input, key);
}

有人能给我一些建议吗?我可以做些什么来解决这个问题?

EDIT尝试在app.config文件中增加会话超时,如下所示:

<system.web>
<sessionState timeout="20"></sessionState>
</system.web>

提前感谢Martijn

neskvpey

neskvpey1#

听起来你需要增加超时。请查看这个site以获得解释和可能的修复。

vyu0f0g1

vyu0f0g12#

尝试在本地调用encode函数,并测量编码所需的时间,尝试使用允许的最大文件大小来获取最坏情况。
如果时间对您来说是最佳的-将服务超时增加到该值。
如果没有-它可能是明智的优化编码功能,或编码在客户端/服务器端和传输已经加密的文件。
从安全Angular 来看,最后一种方法更好,因为在示例中,您可能将未加密的字节数组传递给远程服务-在这种情况下,它非常容易受到网络流量嗅探的攻击。

zxlwwiss

zxlwwiss3#

我认为您需要检查超时是否是在数据流到达服务主机期间造成的,或者实际加密是否花费了太长时间。如果是加密,您可能需要修改此设置。
我知道您正在使用1 MB进行测试,但是,如果您在LAN上使用千兆以太网运行1GB,在良好的网络上,仅将请求发送到服务主机就需要至少10- 15秒。

vnzz0bqm

vnzz0bqm4#

我希望下面的代码可以正常工作..

var objNotificationCreation = new BS_INTELATRAC_DES_SI_Intelatrac_NotificationCreation_InS
{
Credentials = new NetworkCredential("user name","password")//if needed,
Timeout=int.MaxValue
};

相关问题