1

次の URL を使用して IIS7 で WCF サービス (.NET 3.5) を実行すると、400 エラーが発生します。

http://localhost/mrlabatch/MRLABatchProcessingService.svc/events/sr123%20eb/ACCESSCONTROL,ADT,ADTDERIVATION,ADTSTATIONNUMBER,ADTYEAR,CITY,COUNTY,FACILITYTYPE,FEDERALAIDROUTENUMBER,FUNCTIONALCLASSIFICATION,JURISDICTION,LEFTSHOULDERTYPE,LEFTSHOULDERWIDTH,LEFTSIDEWALKWIDTH,MASSDOTHIGHWAYDISTRICT,MEDIANTYPE,MEDIANWIDTH,MPO,NHSSTATUS,NUMBEROFPEAKHOURLANES,NUMBEROFTRAVELLANES,RIGHTOFWAYWIDTH,RIGHTSHOULDERTYPE,RIGHTSHOULDERWIDTH,RIGHTSIDEWALKWIDTH,ROUTEKEY,SPEEDLIMIT,STREETNAME,STREETOPERATION,SUBROUTE,SURFACETYPE,SURFACEWIDTH,TERRAIN,TRUCKROUTE,UNDIVIDEDLEFTSHOULDERTYPE,UNDIVIDEDLEFTSHOULDERWIDTH,URBANIZEDAREA,URBANTYPE/?frommp=8.28489&tomp=10.30031

Visual Studioでデバッグする場合、URLは正常に機能します(もちろん別のポートを指定します)

URL を短くすると、VS と IIS の両方で問題なく動作します。

http://localhost/mrlabatch/MRLABatchProcessingService.svc/events/sr123%20eb/ACCESSCONTROL,ADT,ADTDERIVATION,ADTSTATIONNUMBER,ADTYEAR,CITY,COUNTY,FACILITYTYPE,FEDERALAIDROUTENUMBER,URBANIZEDAREA,URBANTYPE/?frommp=8.28489&tomp=10.30031

web.config で maxrequestlength を上げてみました:

URLのサイズに別の障害がありますか???

4

3 に答える 3

1

問題は、私が投稿していた URL にありました。URL に適切なクエリ文字列を追加する必要がありました: ?events=

 http://localhost/mrlabatch/MRLABatchProcessingService.svc/events/sr123%20eb/?events=ACCESSCONTROL,ADT,ADTDERIVATION,ADTSTATIONNUMBER,ADTYEAR,CITY,COUNTY,FACILITYTYPE,FEDERALAIDROUTENUMBER,FUNCTIONALCLASSIFICATION,JURISDICTION,LEFTSHOULDERTYPE,LEFTSHOULDERWIDTH,LEFTSIDEWALKWIDTH,MASSDOTHIGHWAYDISTRICT,MEDIANTYPE,MEDIANWIDTH,MPO,NHSSTATUS,NUMBEROFPEAKHOURLANES,NUMBEROFTRAVELLANES,RIGHTOFWAYWIDTH,RIGHTSHOULDERTYPE,RIGHTSHOULDERWIDTH,RIGHTSIDEWALKWIDTH,ROUTEKEY,SPEEDLIMIT,STREETNAME,STREETOPERATION,SUBROUTE,SURFACETYPE,SURFACEWIDTH,TERRAIN,TRUCKROUTE,UNDIVIDEDLEFTSHOULDERTYPE,UNDIVIDEDLEFTSHOULDERWIDTH,URBANIZEDAREA,URBANTYPE/?frommp=8.28489&tomp=10.30031
于 2012-10-31T15:29:04.297 に答える
0

無効な文字または長すぎるために、URLがトリミングされていると確信しています。

URLの長さにはいくつかの制限があります。

GETの代わりにPOSTを使用して、非常に多くのものを渡すようにしてください

于 2012-10-31T15:24:37.837 に答える
0

この記事に基づくと、URL が長すぎると、400 ではなく 404 エラーが返されるようです。URL の長さ以外は、リクエストが同じであることを確認します。

サーバーの IIS ログをチェックして、(サーバーに到達したときの) URL が期待どおりであることを確認できます。

.NET フレームワークの URL には 260 文字の制限があるようですが、これは VS Web サーバーでも失敗すると思います。

于 2012-10-31T15:25:16.067 に答える