400错误请求exception:具有小数据的简单SOAP WCF服务

我有一个简单的WCF服务suing SOAP 。 我有一个非常简单的操作“GetMultiplied”,只有非常少量的数据。 当客户端尝试调用该操作时,我得到以下exception。 知道什么都可能是问题吗?

内部exception:{“远程服务器返回错误:(400)错误请求。”}

最后列出了完整的wsdl和schema。

注意:我已在服务和客户端配置中将配额值maxBufferSize等设置为更高的值。

追踪服务

当我在服务中使用跟踪(基于如何打开WCF跟踪? )时,我得到以下内容 – 似乎没有记录错误。

3 0 8   AppDomain unloading. 

服务实施

 public class CalculationService : ICalculationService { public virtual GetMultipliedResponse GetMultiplied(GetMultipliedRequest request) { MultipliedResult result = new MultipliedResult(); result.ResultNumber= ((request.InputNumber)*2); GetMultipliedResponse response = new GetMultipliedResponse(result); return response; } } 

客户

  static void Main(string[] args) { CalculationServiceInterfaceClient proxy = new CalculationServiceInterfaceClient(); multipliedResult result = proxy.getMultiplied(2); } 

在自动生成的代码中,细节是:

  public NewClient.CalcReference.multipliedResult getMultiplied(int inputNumber) { NewClient.CalcReference.getMultipliedRequest inValue = new NewClient.CalcReference.getMultipliedRequest(); inValue.inputNumber = inputNumber; NewClient.CalcReference.getMultipliedResponse retVal = ((NewClient.CalcReference.CalculationServiceInterface)(this)).getMultiplied(inValue); return retVal.restaurants; } 

WSDL

                                           

XSD

         

Cleint配置 (自动生成)

                 

我解决了这个问题:-)

为了别人的利益,我会公布答案。

  1. 关键问题:我试图使用手动创建的wsdl。 (我在服务中提到了本地副本 – 我正在使用工具从wsdl生成服务代码)。 该服务没有提供它。 我应该尝试从浏览svc文件中查看wsdl

  2. 使用WcfTestClient运行服务。 发出错误,显示项目名称和我们使用的命名空间应该相同 。 (否则它将在命名空间名称之前附加项目名称,这将成为不正确的命名空间)

    在“Visual Studio命令提示符”中键入“WcfTestClient”命令。 http://blogs.msdn.com/b/wcftoolsteamblog/archive/2010/01/04/tips-for-launching-wcf-test-client.aspx

  3. 通过浏览服务中的svc文件 ,它显示未启用元数据发布 。 在web.config中添加了元数据浏览的服务行为。

  4. 已使用的服务相对路径(而不是localhost) 错误“没有协议绑定与给定地址匹配…”

  5. 服务跟踪也很有帮助(虽然这里没有帮助我)。 使用“C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ SvcTraceViewer.exe”。 跟着post,错误文件(initializeData =“Error.svclog”)存储在解决方案项目中。 将其更改为其他位置不起作用。 如何启用WCF跟踪?

  6. 引用一个WCF服务 – 两个客户端; 一个客户端不起作用