我一直试图解决这个问题一段时间,但还没有成功.
我有一个基本的ASP.NET WebService,我试图从 javascript中调用它.
我有一个基本的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()); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。