C# 客户端上的Soap Web服务异步方法调用异常
我们有一个名为GetAuthorizationKey的asmx soap web服务方法,有一个windows服务使用此web服务方法,但当我安装build时,我的本地计算机配置为针对远程服务运行,它运行并不会引发异常,但当我将构建安装到Windows 2008服务器时,服务会引发以下异常C# 客户端上的Soap Web服务异步方法调用异常,c#,web-services,soap,C#,Web Services,Soap,我们有一个名为GetAuthorizationKey的asmx soap web服务方法,有一个windows服务使用此web服务方法,但当我安装build时,我的本地计算机配置为针对远程服务运行,它运行并不会引发异常,但当我将构建安装到Windows 2008服务器时,服务会引发以下异常 Exception: the operation 'GetAuthorizationKeyAsync' could not be loaded because it has a parameter or re
Exception: the operation 'GetAuthorizationKeyAsync' could not be loaded because it has a parameter or return type of type System.ServiceModel.Channels.Message or a type that has MessageContractAttribute and other parameters of different types. When using System.ServiceModel.Channels.Message or types with MessageContractAttribute, the method must not use any other types of parameters. at System.ServiceModel.Dispatcher.OperationFormatter.Validate(OperationDescription operation, Boolean isRpc, Boolean isEncoded)
at System.ServiceModel.Dispatcher.OperationFormatter..ctor(OperationDescription description, Boolean isRpc, Boolean isEncoded)
at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter..ctor(OperationDescription description, DataContractFormatAttribute dataContractFormatAttribute, DataContractSerializerOperationBehavior serializerFactory)
at System.ServiceModel.Description.DataContractSerializerOperationBehavior.GetFormatter(OperationDescription operation, Boolean& formatRequest, Boolean& formatReply, Boolean isProxy)
at System.ServiceModel.Description.DataContractSerializerOperationBehavior.System.ServiceModel.Description.IOperationBehavior.ApplyClientBehavior(OperationDescription description, ClientOperation proxy)
at System.ServiceModel.Description.DispatcherBuilder.BindOperations(ContractDescription contract, ClientRuntime proxy, DispatchRuntime dispatch)
at System.ServiceModel.Description.DispatcherBuilder.BuildProxyBehavior(ServiceEndpoint serviceEndpoint, BindingParameterCollection& parameters)
at System.ServiceModel.Channels.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint serviceEndpoint, Boolean useActiveAutoClose)
at System.ServiceModel.ChannelFactory.CreateFactory()
at System.ServiceModel.ChannelFactory.OnOpening()
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.ChannelFactory.EnsureOpened()
at System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via)
at System.ServiceModel.ClientBase`1.CreateChannel()
at System.ServiceModel.ClientBase`1.CreateChannelInternal()
at System.ServiceModel.ClientBase`1.get_Channel()
at service.AuthService.AuthServiceSoapClient.service.AuthService.AuthServiceSoap.GetAuthorizationKey(GetAuthorizationKeyRequest request)
at service.AuthService.AuthServiceSoapClient.GetAuthorizationKey(String UserName, String Password)
at service.Helpers.AuthHelper.GetAuthKey()
at service.ArchiveService.OnStart(String[] args)
Service binding configuration as follows on client side:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="basicHttp" sendTimeout="00:03:00" allowCookies="true"
maxBufferPoolSize="20000000" maxBufferSize="20000000" maxReceivedMessageSize="20000000">
<readerQuotas maxDepth="32" maxStringContentLength="200000000"
maxArrayLength="200000000" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://10.179.160.157/VpefWebservice/EArchive/EArchiveOperations.asmx"
binding="basicHttpBinding" bindingConfiguration="basicHttp"
contract="EArchiveOperations.EArchiveOperationsSoap" name="EArchiveOperationsSoap" />
<endpoint address="http://10.179.160.157/VpefWebservice/AuthService.asmx"
binding="basicHttpBinding" bindingConfiguration="basicHttp"
contract="AuthService.AuthServiceSoap" name="AuthServiceSoap" />
<endpoint address="http://10.179.160.157/VpefWebservice/EInvoice/EInvoiceStagingService.asmx"
binding="basicHttpBinding" bindingConfiguration="basicHttp"
contract="EStagingService.EInvoiceStagingServiceSoap" name="EInvoiceStagingServiceSoap" />
<endpoint address="http://10.179.160.157/VpefWebservice/ELedger/ELedgerOperations.asmx"
binding="basicHttpBinding" bindingConfiguration="basicHttp"
contract="ELedgerOperations.ELedgerOperationsSoap" name="ELedgerOperationsSoap" />
<endpoint address="http://10.179.160.157/VpefWebservice/EArchive/EArchiveReportOperations.asmx"
binding="basicHttpBinding" bindingConfiguration="basicHttp"
contract="EArchiveReportOperations.EArchiveReportOperationsSoap"
name="EArchiveReportOperationsSoap" />
</client>
</system.serviceModel>
异常:无法加载操作“GetAuthorizationKeyAsync”,因为它的参数或返回类型为System.ServiceModel.Channels.Message,或者类型为MessageContractAttribute和其他不同类型的参数。使用System.ServiceModel.Channels.Message或带有MessageContractAttribute的类型时,该方法不得使用任何其他类型的参数。位于System.ServiceModel.Dispatcher.OperationFormatter.Validate(OperationDescription操作,布尔isRpc,布尔isEncoded)
位于System.ServiceModel.Dispatcher.OperationFormatter..ctor(OperationDescription描述,布尔isRpc,布尔isEncoded)
位于System.ServiceModel.Dispatcher.DataContractSerializePropertyFormatter..ctor(操作说明说明、DataContractFormattribute DataContractFormattribute、DataContractSerializePropertyBehavior serializerFactory)
位于System.ServiceModel.Description.DataContractSerializerOperationBehavior.GetFormatter(OperationDescription操作、布尔和formatRequest、布尔和formatReply、布尔isProxy)
位于System.ServiceModel.Description.DataContractSerializePropertyBehavior.System.ServiceModel.Description.IOOperationBehavior.ApplyClientBehavior(OperationDescription说明,ClientOperation代理)
位于System.ServiceModel.Description.DispatcherBuilder.BindOperations(ContractDescription契约、ClientRuntime代理、DispatcherRuntime调度)
位于System.ServiceModel.Description.DispatcherBuilder.BuildProxyBehavior(ServiceEndpoint ServiceEndpoint、BindingParameterCollection和parameters)
位于System.ServiceModel.Channels.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint ServiceEndpoint,布尔值useActiveAutoClose)
在System.ServiceModel.ChannelFactory.CreateFactory()中
在System.ServiceModel.ChannelFactory.OnOpen()中
在System.ServiceModel.Channels.CommunicationObject.Open处(TimeSpan超时)
在System.ServiceModel.ChannelFactory.Resulted()中
位于System.ServiceModel.ChannelFactory`1.CreateChannel(端点地址,Uri通过)
位于System.ServiceModel.ClientBase`1.CreateChannel()
位于System.ServiceModel.ClientBase`1.CreateChannelInternal()
在System.ServiceModel.ClientBase`1.get_Channel()中
位于service.AuthService.AuthServiceSoapClient.service.AuthService.AuthServiceSoap.GetAuthorizationKey(GetAuthorizationKeyRequest请求)
位于service.AuthService.AuthServiceSoapClient.GetAuthorizationKey(字符串用户名、字符串密码)
在service.Helpers.AuthHelper.GetAuthKey()上
at service.ArchiveService.OnStart(字符串[]args)
客户端上的服务绑定配置如下所示:
安装4.6框架后,它开始正常运行。安装4.6框架后,它开始正常运行