zoukankan      html  css  js  c++  java
  • Ajax调用本地WCF(通过ScriptManager控件)

    有两种方法可实现AJAX调用本地WCF服务,以下使用ScriptManager控件实现.

    通过微软的ScriptManager控件,具体流程如下:

    服务接口 IService1.cs:

    namespace wcftest
    {
        [ServiceContract]
        public interface IService1
        {
            [OperationContract]
            string DoWork(string user);
        }
    }

    服务实现 Service1.svc:

    namespace wcftest
    {
        [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
        public class Service1 : IService1
        {
            string IService1.DoWork(string user)
            {
                return "hello"+user;
            }
        }
    }

    Web.config设置:

    <system.serviceModel>
        <behaviors>
          <endpointBehaviors>
            <behavior name="test">
              <enableWebScript/>
            </behavior>
          </endpointBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
        <services>
          <service name="wcftest.Service1">
            <endpoint behaviorConfiguration="test" address="" binding="webHttpBinding" contract="wcftest.IService1">
              <identity>
                <dns value="localhost"/>
              </identity>
            </endpoint>
          </service>
        </services>
      </system.serviceModel>

    前台调用代码:

    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="~/Service1.svc" />
            </Services>
        </asp:ScriptManager>
        <div>
            <input id="btnQueryDictionary" type="button" value="调用" onclick="btnClick();" />
        </div>
        </form>
    </body>
    <script language="javascript" type="text/javascript">
        function btnClick()
        {
            var user = " Beautiful Gril";
            var wcfProxy = new tempuri.org.IService1();
            wcfProxy.DoWork(user, OnSucceededCallback, OnFailedCallback);
        }

        function OnSucceededCallback(result, userContext, methodName)
        {
            if (methodName == "DoWork")
            {
                alert(result);
            }
        }

        function OnFailedCallback(error, userContext, methodName)
        {
            alert("异常信息:" + error.get_message());
        }
    </script>

  • 相关阅读:
    Python学习Day2笔记(字符编码和函数)
    Python学习Day2笔记(集合和文件操作)
    PyCharm3.0默认快捷键(翻译的)
    C# 读取EXCEL文件的三种经典方法
    DataGridView列的宽度、行的高度自动调整
    禁用datagridview中的自动排序功能
    如何删除datatable中的一行数据
    NPOI导出Excel合并表头写入公式
    C# SaveFileDialog的用法(转载)
    linux操作
  • 原文地址:https://www.cnblogs.com/silent2012/p/2334912.html
Copyright © 2011-2022 走看看