加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Javascript – 调用ASP.NET WebService – 服务器方法’me

发布时间:2020-12-15 17:17:56 所属栏目:百科 来源:网络整理
导读:我一直试图解决这个问题一段时间,但还没有成功. 我有一个基本的ASP.NET WebService,我试图从 javascript中调用它. using System;using System.Web;using System.Web.Services.Protocols;using System.Web.Services;using System.Web.Script.Services;namespa
我一直试图解决这个问题一段时间,但还没有成功.
我有一个基本的ASP.NET WebService,我试图从 javascript中调用它.

using System;
using System.Web;
using System.Web.Services.Protocols;
using System.Web.Services;
using System.Web.Script.Services;

namespace RandomWebServices
{
/// <summary>
/// Summary description for WebServices1
/// </summary>
[WebService(Namespace = "http://localhost:2900/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WebServices1 : WebService
{
    [WebMethod]
    public string PieTable(string table)
    {
        return table + " - resultant text";
    }
}
}

简单……是吗?
那么为什么当我尝试从javascript调用它时,我得到以下内容:

“Error: The server method ‘PieTable’ failed.”

我按如下方式调用WebService:

<script type="text/javascript">
function CallService() {
    RandomWebServices.WebServices1.set_defaultSucceededCallback(Callback);
    RandomWebServices.WebServices1.set_defaultFailedCallback(OnError);

    RandomWebServices.WebServices1.PieTable("Pie");

    return false;
}

function Callback(result) {
    alert("asd");

    var outDiv = document.getElementById("outputDiv");

    if (outDiv == null) {
        alert("outputDiv not found");

        return false;
    }
    else {
        alert("outputDiv found");

        outDiv.innerText = result;
    }

    return false;
}

function OnError(result) {
    alert("Error: " + result.get_message());
}
</script>

我从以下对象调用javascript:

<input value="Load" onclick="CallService(); return false;" type="button" />

我使用AJAX的ToolkitScriptManager对象来引用WebService:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
<Services>
    <asp:ServiceReference Path="http://localhost:2900/WebServices1.asmx" />
</Services>
</asp:ToolkitScriptManager>

请协助.
提前致谢.
马尔科

解决方法

如果您不使用.NET 4,则需要执行配置条目以启用脚本服务.请参阅 http://msdn.microsoft.com/en-us/library/bb398998(v=VS.90).aspx.因此,请确保您在web.config中有以下部分.

<system.web>
  ...
  <httpHandlers>
    <remove verb="*" path="*.asmx"/> 
    <add verb="*" path="*.asmx" 
      type="System.Web.Script.Services.ScriptHandlerFactory"
       validate="false"/>
  </httpHandlers>
  ...
<system.web>

对于故障排除,您可以查看异常的堆栈跟踪 – 例如,

function OnError(result) {
    alert("Error: " + result.get_message());
    alert("Stack Trace: " + result.get_stackTrace());
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读