1

我在 IIS7 中使用以下 URL 运行 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 长度有一些限制。

尝试使用 POST 而不是 GET 来传递这么多东西

于 2012-10-31T15:24:37.837 回答
0

根据这篇文章,如果 URL 太长,您会收到 404 错误,而不是 400。我会确保请求与 URL 长度相同。

您可以检查服务器上的 IIS 日志以确保 url(当它到达服务器时)是您所期望的。

.NET 框架中的 url 似乎有 260 个字符的限制,但我认为这在 VS Web 服务器中也会失败。

于 2012-10-31T15:25:16.067 回答