繁体   English   中英

Web服务IIS7 .net Framework 4 http 400

[英]web service IIS7 .net framework 4 http 400

在我们的测试服务器上,当我尝试转到IIS托管的WCF服务的URL时,出现HTTP 400错误。 当我查看服务器上的WCF日志时,它指出“由于正文为空,因此无法读取消息正文”。 如果我尝试对同一台服务器上的另一项服务执行相同的操作,则它可以正常工作,并且可以获得WSDL的路径。

我也无法通过SoapUI连接到WSDL。 但是,我可以从Visual Studio连接到该服务。

我见过的大多数帖子都提到在配置文件中需要httpGetEnabled="true" 该属性存在于测试服务器的web.config中。

其他帖子提到需要其他属性,但是我不明白如果生产服务器在没有它们的情况下为什么需要它们。

编辑以回应戴文:这是Fiddler对生产请求GET的原始视图GET http://production.svc HTTP / 1.1接受:text / html,application / xhtml + xml, /接受语言:zh-代理:Mozilla / 5.0(兼容; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)Accept-Encoding:gzip,deflate连接:Keep-Alive主机:生产

这是Fiddler针对测试请求的原始视图GET http://test.svc HTTP / 1.1接受:text / html,application / xhtml + xml, /接受语言:zh-CN用户代理:Mozilla / 5.0 (兼容; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)Accept-Encoding:gzip,deflate连接:Keep-Alive主机:test

这是试图使用IE9连接到服务。

转至CodeCaster:它正在使用框架4并在asp.net v4.0应用程序池中运行。 框架4安装在服务器上。 如果我使用设置的测试应用程序,则可以连接到该服务,并向其中一种方法发送请求,它可以正常工作。

我的问题是使用IE或soapUI连接到服务,因为我们的供应商只有在能够这样做时才更新他们在测试系统上的端点。

HTTP 400是BadRequest 当服务器由于无法处理请求而拒绝请求时,将抛出此错误。 在这种情况下,您收到的错误消息很有意义。 这也意味着,该服务器能够找到您的端点。 因此,问题可能出在httpGetEnabled

您需要做的是查看将发送到服务器的HTTP消息。 为此,我建议将您的客户端指向一个代理(提琴手),然后配置提琴手将请求转发到服务器。 然后,您需要确保请求的格式符合您的期望。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM