当前位置: 首页 > 编程语言 > C#

WCF从客户端向服务器发送intshare

时间:2023-04-10 22:18:22 C#

WCF从客户端向服务器发送int我遇到了这个问题:我有一个WCF服务暴露了这个操作契约:字符串文件名);在我的客户中,我有:AudioDetectionServiceReference.AudioDetectionServiceClientclient=newAudioDetectionServiceReference.AudioDetectionServiceClient();client.Index(max.ToArray(),mp3Files[i]);其中max是2000int值数组,而mp3Files[i]是一个200个字符的字符串。Web.config有这个:app.config有:现在是棘手的部分:当您右键单击服务引用时,转到配置服务引用,有一个名为Collectiontype的选项。如果我将集合类型设置为“Syste.Array”,我会收到错误远程服务器返回意外响应:(400)错误请求。使用堆栈跟踪:Serverstacktrace:atSystem.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequestrequest,HttpWebResponseresponse,HttpChannelFactoryfactory,WebExceptionresponseException,ChannelBindingchannelBinding)atSystem.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan超时)在System.ServiceModel.Channels.RequestChannel.Request(Messagemessage,TimeSpantimeout)在System.ServiceModel.Channels.ServiceChannel.Call(Stringaction,Booleanoneway,ProxyOperationRuntimeoperation,Object[]ins,Object[]outs,TimeSpan超时)在System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessagemethodCall,ProxyOperationRuntime操作)在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage消息)处重新抛出异常[0]:在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessagereqMsg,IMessageretMsg)在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)在SqlTest.AudioDetectionServiceReference.IAudioDetectionService。(Int32[]song,StringfileName)atSqlTest.AudioDetectionServiceReference.AudioDetectionServiceClient.Index(Int32[]song,StringfileName)inblablablaServiceReferencesAudioDetectionServiceReferenceReference.cs:line53atSqlTest.Program.Main(String[]args)inblablablaProgram。:line46当我将其更改为“System.Collection.Generic.List”时,错误神奇地消失了我的问题是:为什么?第二个问题:你为什么要这样做?client.Index(max.Take(100).ToArray(),mp3Files[i]);使用相同的上下文(app.config、web.config、与上面相同的代码,选择System.Array)。谢谢,AndreiNeaguPS:我发布这个是因为我花了2天时间尝试更改绑定设置、更改消息大小、更改readerQuotas的值和其他东西,当时我不得不做出这个愚蠢的选择。所以我很生气,我想至少从中学到一些东西。经过一番挖掘,我只是更改了:服务器的app.config,看到basicHttpBinding部分没有名称。我认为如果这个部分有一个名称,WCF生成的默认服务将忽略它。对于其他值,我在末尾添加了一个0(乘以10)。我认为增加它们可以让你转移更多的事件。但最重要的是,basicHttpBinding没有名称。如果它有名字,我想它会被忽略。我不会将此标记为已回答,因为问题是为什么System.Array会抛出异常而System.Generic.List不会。以上就是C#学习教程:WCF将客户端所有int共享的内容发送到服务端。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: