VS 2010 で非常に単純な Web メソッド呼び出しをセットアップしようとしていますが、惨めに失敗しています。VS2008でもまったく同じ設定が機能しますが、違いがどこにあるのかわかりません。コードは次のとおりです。
test.aspx ajax 呼び出し (ローカルホストなしでも試しました):
$(document).ready(function ()
{
$("#btnAjax").click(function ()
{
var testData = "test";
$.ajax({
type: "POST",
url: "http://localhost/test.aspx/Test",
data: JSON.stringify({ test: testData }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg)
{
alert("ok");
},
error: function (xhr, err)
{
alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
alert("responseText: " + xhr.responseText);
}
})
});
});
test.aspx.cs (ブレークポイントはメソッドに到達しないことを示します):
[WebMethod()]
public static string Test(string test)
{
return "xyz";
}
web.config (動作する VS2008 バージョンから取得しました):
<modules>
<remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
返される準備完了状態は常に 0 で、応答テキストは空です。firebug は正しいデータが投稿されたことを示し、応答タブにはページの html が表示されます。私はこれまで firebug デバッガーを使用する必要がなかったので、おそらくもっと調べるべきことがあります。コンソール/ネットは有効になっていますが、明らかなものは見当たりませんでした。
私はたくさん検索しましたが、役立つものやまだ試していないものは見つかりません。一言で言えば、他にどこを見ればいいのかわからない...
おそらく、最初にWCFサービスを実装しようとしたが、「認証に失敗しました」で失敗し続けたという事実が1つの指針になるかもしれません. WCF である必要はないので、最終的には基本、つまりこの単純な Web メソッドに戻ることにしました。それが認証の問題なのか、それとも何か他の問題なのかを確認する方法がわかりません。これがそうではないと思うのは、VS2008バージョンがまったく同じサーバーで動作するという事実です。
どんな提案でも大歓迎です。