代码之家  ›  专栏  ›  技术社区  ›  Bullines

WCF新手问题:从JavaScript调用方法

  •  3
  • Bullines  · 技术社区  · 16 年前

    问候语!

    <form id="form1" runat="server">
       <div>
          <asp:ScriptManager ID="ScriptManager1" runat="server">
             <Scripts>
                <asp:ScriptReference Path="~/test.js" />
             </Scripts>
             <Services>
                <asp:ServiceReference Path="~/MyService.svc" />
             </Services>
          </asp:ScriptManager>
       </div>
       <button onclick="test()">Click Me</button>
    </form>
    

    我的服务界面如下所示:

    namespace Test
    {
        [ServiceContract(Namespace = "Test")]
        public interface IMyService
        {
            [OperationContract]
            void DoWork();
    
            [OperationContract]
            string SayHi();
        }
    }
    

    下面是它的实现:

    namespace Test
    {
        [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
        public class MyService : IMyService
        {
            public void DoWork()
            {
            }
    
            public string SayHi()
            {
                return "Hello, World!";
            }
        }
    }
    

    function test() {
        Test.MyService.SayHi(SayHiSuccess, SayHiError);
    }
    
    function SayHiSuccess(result) {
        alert(result[0]);
    }
    
    function SayHiError(error) {
        alert(error.toString());
    }
    

    2 回复  |  直到 16 年前
        1
  •  3
  •   Randolpho    16 年前

    您没有发布web.config内容。你用的是什么装订?你可能应该使用 webHttpBinding .

    此外,了解.svc文件的内容可能会有所帮助。虽然我从未尝试过,但我知道如果您使用 WebScriptServiceHostFactory

    <%@ ServiceHost Service="MyService"
        Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"
     %>
    

    如果所有其他方法都失败了,以下是一些资源供您使用:

        2
  •  0
  •   Fung    16 年前

    Fiddler 在运行连接了调试器的WCF代码时跟踪HTTP调用(大多数情况下在Visual Studio中运行)。