36


5

IISで実行されているWebサービスで「リクエスト形式がURLに対して認識されない…​」というエラーを修正する方法を教えてください。

IISでWebサービスを実行中に次のようなエラーが表示されます。

_ _ 「/ Inbox Sevice」アプリケーションのサーバーエラー。 予期しない '/ GetMailsInfo’で終わるURLの要求形式が認識されません 説明:現在のWeb要求の実行中に未処理の例外が発生しました。 エラーとコードのどこで発生したかの詳細については、スタックトレースを確認してください。

例外の詳細:System.InvalidOperationException:URLの要求形式が正しく認識されず、 '/ GetMailsInfo’で終わっています。

ソースエラー:

現在のWeb要求の実行中に未処理の例外が発生しました。 例外の発生源と場所に関する情報は、以下の例外スタックトレースを使用して識別できます。

スタックトレース:

[InvalidOperationException: '/ GetMailsInfo’で終わるURLの要求形式が正しく認識されません。] System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type、HttpContextコンテキスト、HttpRequest要求、HttpResponse応答)490982 System.Web.Services.Protocols .WebServiceHandlerFactory.GetHandler(HttpContextコンテキスト、String動詞、String url、String filePath)104 System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContextコンテキスト、String requestType、String url、String pathTranslated)127 System.Web.HttpApplication.MapttHandler (HttpContextコンテキスト、String requestType、VirtualPathパス、String pathTranslated、Boolean useAppConfig)175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()120 System.Web.HttpApplication.ExecuteStep(IExecuteStep(IExecuteStep)を実行します。

バージョン情報:Microsoft .NET Frameworkバージョン:2.0.50727.42; ASP.NETバージョン:2.0.50727.42 _ _

なぜ私がこのエラーを見ているのか、そしてそれを修正する方法があるのか​​どうか誰かが知っていますか?

3 Answer


88


HTTP GETとHTTP POSTは デフォルトでは無効になっています設定ファイルに以下を追加してみてください。



5


私は同じ問題を抱えています。 それを解決するためにあなたのサービスに[ScriptService]を追加してください

システムを使用する。 System.Collections.Genericを使用します。 System.Linqを使用します。 System.Webを使用する。 System.Web.Script.Servicesを使用します。 System.Web.Servicesを使用します。

namespace DemosAjaxcontroltoolkit {/// /// WebServiceの概要説明/// [ScriptService] [WebService(Namespace = " http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel .ToolboxItem(false)] // ASP.NET AJAXを使用してスクリプトからこのWebサービスを呼び出せるようにするには、次の行のコメントを外します。 // [System.Web.Script.Services.ScriptService]パブリッククラスWebService:System.Web.Services.WebService {

[System.Web.Script.Services.ScriptMethod()] [WebMethod]

パブリック文字列[] GetWords(文字列prefixText、int count){リストの単語= new List();} words.Add( "Apple"); words.Add( "Appertizer"); words.Add( "Apple tree"); words.Add( "Apple Cider"); words.Add( "Afternoon"); words.Add( "Morning"); words.Add( "Breakfeast"); words.Add( "Lunch"); words.Add( "Spider"); words.Add( "Morning"); words.Add( "Day"); words.Add( "Travel"); Add.( "Night"); words.Add( "Car"); words.Add( "Bikes"); Add( "Love"); words.Add( "Good");

(w => w.StartsWith(prefixText))。Take(count).ToList(); //単語を返す。

//返されたリスト=単語をリストする(w => w.StartsWith(prefixText))。Take(count).ToList(); (w => w.ToUpper()。StartsWith(prefixText.ToUpper()))。ToArray(); }

}}}


2


興味がないだけです( - AJAX経由でWebサービスにアクセスする場合)。 「content-type」ヘッダーが渡されない場合( - それがローカルの/ "HttpPostLocalhost"リクエストであっても)、問題が発生するので、私はヘッダーを自分で渡します(たとえば、 これに頼るのではなく、jQueryの '$ .getJSON()'メソッドを介さずにjQueryの '$ .ajax()'メソッドを介して: