gpt4 book ai didi

javascript - JSON 服务类未定义客户端

转载 作者:行者123 更新时间:2023-11-28 09:04:49 25 4
gpt4 key购买 nike

我在我的 asp.net 网站中通过 ajax 调用使用了一堆 JSON 服务类。一切都工作正常,直到几天前,其中一个类不再在客户端可见。

它被称为 ExceptionsJSONService ,当我尝试通过 javascript 实例化它时

var service = new ExceptionsJSONService();

我得到“预期对象”。我不知道有什么可以改变,因为它工作正常。我已经检查了 web.config 并且该服务是通过以下方式定义的:

    <behavior name="ExceptionsJSONServiceAspNetAjaxBehavior">
<enableWebScript />
</behavior>

及以后:

  <service name="ExceptionsJSONService">
<endpoint address="" behaviorConfiguration="ExceptionsJSONServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="ExceptionsJSONService" />
</service>

它是通过 ScriptManager 在母版页中定义的:

<asp:ServiceReference Path="~/Services/ExceptionsJSONService.svc" />

我有包含以下内容的服务文件:

<%@ ServiceHost Language="C#" Debug="true" Service="ExceptionsJSONService" CodeBehind="~/App_Code/ExceptionsJSONService.cs" %>

我有实际的类定义文件,其标题是:

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ExceptionsJSONService : BaseJSONService {}

由于长度原因,我省略了类的主体,但它构建得很好,并且除了与我的所有其他 JSONService 类的名称相同之外,都是相同的。

最佳答案

该问题是由 ExceptionsJSONService 类中定义的公共(public)函数引起的。该函数应该是公开的,但它也被标记为操作合约。

该函数的参数列表中是我们的 EF DB 上下文对象。因为它位于操作契约的参数列表中,所以它导致服务搜索与数据库上下文关联的所有实体的数据契约。这导致抛出仅出现在服务跟踪日志中的异常。该异常导致服务无法正确加载,因此当我尝试在 JavaScript 中实例化服务客户端时,它会失败。

从函数中删除操作契约属性解决了该问题。

关于javascript - JSON 服务类未定义客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299315/

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