好吧,这是一个不可能的主意。我已经思考了好几个小时了。我不知道该如何解决这个问题。但也许这里有人能认识到这个问题并给我指明正确的方向。
我有一台 IIS 7.5 服务器和另一台服务器上的 MSSQL 数据库。在 IIS 服务器上有一个与 MSSQL 服务器通信的 Web 服务。
问题是,当 MSSQL 服务器需要将数据发送回 Web 服务,而 Web 服务将这些数据返回给 Web 浏览器 (JSON) 时,我收到 400 错误。查看 IIS 日志,只有 400....没有其他错误。当我在浏览器 URL 字段中输入对该服务的调用时,我收到以下信息:“服务器在处理请求时遇到错误。请参阅服务帮助页面,了解如何构建对服务的有效请求。”
我调用 webservice 的方式没有任何问题。它之前在另一台服务器(开发服务器)上工作正常。
有人知道这是怎么回事吗?400 表示 URL 格式错误...但事实并非如此。为什么当没有数据返回给用户时...一切都正常。但当从 MSSQL DB 中提取数据时...就会出现 400 错误。
希望有人能提供一些解决方法。提前谢谢。
答案1
尝试在拼图的每个步骤中进行捕获:
在客户端上使用 wireshark 启动,并验证你发出的请求是否不是格式不正确。可能是服务器名称太长,或者存在无效字符,导致其与生产服务器崩溃。
然后点击 IIS 并确保已启用请求日志记录。发出请求,然后查看 IIS 日志。如果 IIS 堆栈生成错误,您可能会得到更具描述性的错误代码。
从那里,检查您的应用程序事件日志,确保您没有记录任何应用程序级异常。检查您的应用程序池是否正常运行。检查您是否没有启用任何 URL 重写。检查是否配置了正确的应用程序处理程序 - 或者至少没有被覆盖。
此时,如果请求已到达您的应用程序,您可能应该与开发人员沟通。但是,您可以运行 SQL Server Profiler 跟踪以确保它已成功到达数据库。
我确信我错过了一些故障案例,但我希望这至少能为你指明正确的方向。