私のasp.net Webサイトでajax呼び出しを介して使用されるJSONサービスクラスがたくさんあります。数日前まで、すべてが正常に機能しており、クラスの 1 つがクライアント側で表示されなくなりました。
それは 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 クラスの名前を除いて同一です。