2

私のプロジェクトには、AutoCompleteExtender に使用され、VS からデバッグするときに正常に動作する Web メソッドを持つ Web サービス ファイルがあります。

しかし、IIS で公開してホストすると、正しく動作しません。

ただし、URL を入力して webservice メソッドを直接テストしたところ、目的の出力が得られました。

IIS を機能させるために特別な設定を行う必要がありますか、それとも AutoCompleteExtender のプロパティを設定する必要がありますか?

4

6 に答える 6

1

サイトを Cassini から IIS7.5 に移動したときに、この問題が発生しました。多くの掘り下げの後、system.webServerセクションのweb.configに次を追加する必要がありました。それが役に立てば幸い。

<modules runAllManagedModulesForAllRequests="true">
      <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="ScriptHandlerFactory"/>
  <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"/>
</handlers>
于 2011-04-26T00:29:52.413 に答える
0

IISやathの問題ではありません。それは実際にはバグです(私は思います)。Webサービスの関数で文字列配列を返すには、関数のパラメーター名または引数を確認してください。文字列パラメータの名前はprefixTextである必要があり、intフィールドの名前はcountである必要があります。

また、Webサービスの関数にはこれらの2つのパラメーターが必要です。

このような

[WebMethod]
  public string[] getCountry(string prefixText, int count)
    {
        ......
....
return ...
    }
于 2011-02-24T07:02:02.740 に答える
0

ASP.NET 3.5 から 4.0 にアップグレードした後、同じ問題が発生し、エクステンダーを動作させることができません。firefox と firebug から、メッセージとともに500 Internal Server Errorを受け取ります

System.InvalidOperationException: リクエストの形式が無効です: application/json; 文字セット=utf-8。System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() で System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest() で

http://msdn.microsoft.com/en-us/library/bb763183.aspxで提案されている web.config 設定でテストしましたが、構成エラーが発生します。

于 2010-12-10T12:45:30.193 に答える
0

ハンドラーの順序を変更してみてください (削除してから追加します)。この例では、AJAX/スクリプト ハンドラー以外をすべて削除しました。

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true" />
  <handlers>
    <remove name="WebServiceHandlerFactory-Integrated"/>
    <remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
    <remove name="WebServiceHandlerFactory-ISAPI-2.0-64"/>
    <remove name="WebServiceHandlerFactory-ISAPI-4.0_32bit"/>
    <remove name="WebServiceHandlerFactory-ISAPI-4.0_64bit"/>
    <!--<add name="WebServiceHandlerFactory-Integrated-4.0" ...</handlers> 
于 2010-12-13T14:26:38.723 に答える
0

私は同じ問題に直面していました。IIS 7 Windows Server 2008 R2 でホストした後、AutoCompleteExtender が機能しませんでした。

アプリケーションプールの「マネージドパイプラインモード」を「統合」から「クラシック」に変更することでうまくいきました。この設定は、アプリケーション プールを選択することで取得できます -> [基本設定] を選択します。

ありがとうございました。

于 2019-01-01T11:31:08.573 に答える
-1

これを試して

スタート>実行>inetmgr>に移動します

接続サイドペインで、アプリケーション プールを選択します。

そのプロジェクトをiisに展開したときに割り当てたアプリケーションプールを選択します(サイト>接続ペインに移動することを確認します...展開したWebサイトを右クリックし、Webサイトの管理>詳細設定を選択してから、上部にあるwilアプリケーションプールを見ることができます)

次に戻ってきて、接続ペインのアプリケーション プールでその特定のアプリケーション プールを選択します。その特定のアプリケーション プールを右クリックし、詳細設定を選択します。その中のプロセス モデルを見つけて、ID を選択し、それを参照して、ビルトイン アカウントに移動し、ローカル システムを選択します。 ……それから[OK]をクリックしてください...そしてそれから出てください...

私はそれがうまくいくと思う.それは私のために働いた.....

于 2013-03-05T08:08:29.453 に答える