JQuery只调用WCF Web方法几次

时间:2016-03-15 16:41:28

标签: c# jquery wcf

我有一个Visual Studio项目,它包含aspx默认页面,一些jquery脚本和.svc WCF服务文件。如果我连接浏览器(非调试),它工作正常,但当我在VS中调试并点击调用web方法显示服务器时间的按钮时,它在第一次和第二次正常工作,但然后再次显示第一次和两次循环。如果我在Web方法上设置一个断点,它在最初几次之后就不会中断。

这与他们在同一个项目中的事实有关吗?

对不起,这是JQuery函数:

function controlOutput(outputNumber, state) {
var webMethod = "ControlOutput?DeviceIPAddress=" + adamsIPAddress + "&OutputNumber=" + outputNumber + "&State=" + state + "&vSessionID=" + sessionID;
var fullCommandURL = webServiceUrl + webMethod;
jQuery.support.cors = true;
$.ajax({
    type: "GET", //GET or POST or PUT or DELETE verb
    url: fullCommandURL, // Location of the service
    contentType: 'application/json; charset=utf-8', // content type sent to server
    dataType: "json", //Expected data format from server
    success: function (result) {//On Successfull service call
        connectionInfo = result;
        $(h2Test).text(result);
        //alert(result);
    },
    error: function (result) {// When Service call fails
        alert(result.statusText);
    }
});

}

WCF服务代码:

    public string ControlOutput(string DeviceIPAddress, int OuputNumber, int State, Guid SessionID)
    {
        try
        {
            string ret = DateTime.Now.ToString("HH:mm:ss.fff");
            AdamSocket adamSocket = new AdamSocket();
            adamSocket.SetTimeout(1000, 1000, 1000);
            bool con = adamSocket.Connect(DeviceIPAddress, ProtocolType.Tcp, 502);
            bool res = adamSocket.Modbus().ForceSingleCoil(17, State);
            adamSocket.Disconnect();
            return ret;
        }
        catch (Exception ex)
        {
            LogEvent(null, "Application Exception", ex.Message, SessionID);
            return "Failed";
        }
    }

1 个答案:

答案 0 :(得分:0)

事实证明GET命令是缓存的,所以只执行了几次。使用POST修复此问题。 ;)