0

IIS6 では動作しませんが、開発環境 (私のマシン) では動作するコードがあります。

次のようなフットプリントを持つ ASPX ページにメソッドがあります。

 [WebMethod()]
 [ScriptMethod()]
 public static string HelloWorld(string name)
  { 
       return 'Hi '+name;
  }    

ブラウザのコンソールを見ると、スクリプトがこのメソッドを呼び出していることがわかりますが、IIS は 404 not found を返します。

このスクリプトは、次の URL に対して http POST を実行します: http://mydomain.com/myPage.aspx/HelloWorld

IISのMIMEタイプと関係があると思いますか?

4

1 に答える 1

0

これに対する解決策を見つけました。問題は2つのことが原因でした。

まず、これを Web.Config に追加する必要がありました

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>

次に、もう 1 つの問題は、UrlRewritingNet (http://www.urlrewriting.net/149/en/home.html) という URL 書き換えツールの使用でした。

このモジュールを構成する方法の 1 つは、ワイルド カード * に一致する ISAPI フィルターとして IIS6 に配置することです。したがって、一致するファイル拡張子がない場合、このフィルターはクエリを実行します。

2 番目の問題を回避する方法は、json クエリではなく、サービスに対して XML クエリを実行することでした。次に、呼び出しを行うときにファイル拡張子付きの URL を使用します。

お役に立てれば

于 2012-05-31T17:12:34.897 に答える