gpt4 book ai didi

c# - Javascript - 调用 ASP.NET WebService - 服务器方法 'methodName' 失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:21:41 25 4
gpt4 key购买 nike

我已经尝试解决这个问题一段时间了,但还没有成功。我有一个基本的 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());
}

关于c# - Javascript - 调用 ASP.NET WebService - 服务器方法 'methodName' 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com