测试表单仅适用于本地计算机的请求 - 只有一些方法

时间:2015-10-13 11:58:11

标签: c# asp.net web-services

在浏览我的网络服务时,我收到以下消息。我已经在许多地方读过我应该在我的webconfig中添加HttpGet和HttpPost,但它已经存在了。我尝试使用两个看起来相同的方法,返回相同的类型,但是输入参数少一个,然后一个工作正常,一个得到“测试表只适用于本地机器的请求”。

我知道它与参数数量无关,因为我还有一个方法甚至更多参数,但它工作正常..

为什么会有不同的行为?

  

测试表仅适用于本地机器的请求

<webServices>
  <protocols>
    <add name="HttpGet"/>
    <add name="HttpPost"/>
  </protocols>
</webServices>

    //This gets "The test form is only available for requests from the local machine"
    [WebMethod]
    public int DoSomething(string param1, string param2, string param3, string param4, bool param5, DateTime param6, DateTime param7,
        double param8, double param9, string param10, string param11, int param12, int param13,
        string param14, int param15,DateTime? param16)
    {

        return 0;
    }

    //This method works fine
    [WebMethod]
    public int DoSomething2(string param1, string param2, string param3, string param4, bool param5, DateTime param6, DateTime param7,
        double param8, double param9, string param10, string param11, int param12, int param13,
        string param14, int param15)
    {

        return 0;
    }

编辑:问题的原因似乎是可以为空的参数

1 个答案:

答案 0 :(得分:1)

生成错误的Web方法具有可为空的DateTime(DateTime?)参数。似乎可空类型本身并不是可序列化的。也许您可以使用string参数,只需在后端验证它。只是一个建议。