无法在aspx页面上添加Web服务/服务引用

时间:2011-09-16 06:35:16

标签: asp.net wcf web-services ajaxpro

我认为我的web.config正确,但我想知道如何在aspx页面上添加服务引用或Web服务本身,以便我的脚本可以访问它。

这是我做的,但它不起作用:

<%@ ServiceHost Language=C# Service="WebService" CodeBehind="http://urlToMyService.svc"%>

<asp:ScriptManager ID="ScriptManager1" runat="server">
   <Services>
      <asp:ServiceReference 
         Path="http://urlToMyService.svc"/>
   </Services>
</asp:ScriptManager>

我想我需要添加<%@ ServiceHost %><asp:ScriptManager>,但我想要更清楚地说明我需要包含的每个参数。

1 个答案:

答案 0 :(得分:1)

您只能添加对本地服务的引用(即ASP.NET Web应用程序中存在的服务)。所以典型的服务参考就像

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/HelloWorldService.svc" />
    </Services>
</asp:ScriptManager>
aspx页面(或母版页或用户控件)上的

。您不需要<%@ ServiceHost %>等 - 这将显示在svc文件中。

请注意,向ScriptManager添加服务引用会生成一个java脚本服务代理,该代理将简化从java脚本调用Web服务的过程。这对于从代码(在服务器端)调用服务没有用。请参阅本教程以开始从java脚本调用服务:http://www.codeproject.com/KB/aspnet/wcfinjavascript.aspx

要从服务器端代码调用服务,您必须从Visual Studio添加服务引用(右键单击您的项目并选择Add Service Reference上下文菜单) - 在这种情况下,VS生成代理代码以调用服务。