gpt4 book ai didi

asp.net - 从 Javascript 调用 ASP.NET Web 服务时出错

转载 作者:行者123 更新时间:2023-11-30 23:53:48 26 4
gpt4 key购买 nike

我试图从 Javascript 调用 ASP.NET Web 服务,但它无法识别 Web 方法,即使我完全限定该名称,我也试图找出问题所在。

这是我的 web.config 文件的一部分:

<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>

这是我的网络服务声明

[WebService(Namespace = "http://tempuri.org")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class SavingService : System.Web.Services.WebService
{
[WebMethod]
public static void SaveToDB(string runCode, string container,
string productType, string inspector, string[][] scoregrid, string notes)

这是 javascript(QCApp4 是我项目的命名空间):

function PrepToSave()
{
....
QCApp4.SavingService.SaveToDB(codev, containerv, prodtype, inspector, scoregrid, notes);
}

scoregrid 在 js 端使用 Array() 命令声明为锯齿状二维数组。这是我对网络服务参数唯一担心的问题。

这是服务引用:

<asp:ScriptManager id="scriptmng" runat="server">
<Services>
<asp:ServiceReference Path="~/SavingService.asmx" />
</Services>
</asp:ScriptManager>

无论是直接调用 Web 方法,还是像 SavingService.SaveToDB 那样调用它,或者使用完整的限定符来调用它,我都会收到错误。我收到的错误表明 SaveToDB 未定义。 SavingService 未定义,QCApp4 未定义,具体取决于输入的限定名称的第一部分。

我错过了什么吗?我是否设置错误?

事实证明我已经将 WebMethod 设为静态,当然现在我在错误控制台中收到错误:

错误:[异常...“'Sys.Net.WebServiceFailedException:Sys.Net.WebServiceFailedException:服务器方法“SaveToDB”失败,出现以下错误:System.NullReferenceException - 未将对象引用设置为实例目的。'调用方法时:[nsIDOMEventListener::handleEvent]"nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)"位置:""数据:否]

最佳答案

如果您在 ServiceReference 元素上设置 InlineScript 属性,它将写出与 HTML 内联的 JavaScript 方法,以便您可以准确地看到需要调用的内容或者如果你调用了错误的东西:

<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/SavingService.asmx" InlineScript="true" />
</Services>
</asp:ScriptManager>

关于asp.net - 从 Javascript 调用 ASP.NET Web 服务时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/553377/

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