【问题标题】:Soap error in webservice on one server but not the other一台服务器上的 web 服务中的肥皂错误,但另一台服务器上没有
【发布时间】:2013-12-10 10:01:45
【问题描述】:

我有一个部署在 Server2008 IIS7 上的 ASP.NET 网络服务。我们使用两台服务器,Production 和 UAT(测试服务器),并且这个 web 服务部署在两台服务器上,它们都进行了相同的编译(没有代码更改、修订等,纯粹从一个服务器复制/粘贴到另一个服务器)。

应用程序之间的唯一区别是 web.config 中的连接字符串,一个指向 PROD 数据库,另一个指向 UAT。

如果我调用测试网络服务,我会得到预期的响应,一切都很好,但是当我在生产网络服务上做同样的事情时,我会立即得到错误

Server was unable to process request. ---> Object reference not set to an instance of an object.

我怀疑一定存在配置问题,因为 Web 服务在其自己的池下运行,该池由服务帐户/用户(服务器上的本地管理员)运行,并且它们设置为仅通过 SSL 运行(https:/ / only)在一个特殊的端口上。 我厌倦了用 Fiddler 嗅探,得到了两个相同的 SOAP 请求,唯一的区别是 URL 中的服务器名称。我可以从 IE 浏览器访问这两个 Web 服务的 WSDL,我可以在 Visual Studio 中成功刷新我的 Web 引用(对于 prod 和 uat 服务)。

有没有人有任何提示我应该看什么,也许有人有类似的问题?

【问题讨论】:

  • 它应该会给你一个错误的堆栈跟踪,包括行号......开始调查吧。
  • Stacktrace 消息是上述错误,返回的行号是我从测试应用程序调用 Web 服务的确切行。
  • 所以如果是这样,那么这就是你的问题。我的意思是,您是否尝试附加调试器以查看它的命中位置?您是否查看了该行号上的代码以查看引用的对象是什么?它是一个空引用异常,所以当它为空时你试图使用一个对象(调用它)
  • 两台服务器上的 Web 服务是相同的,我使用测试应用程序中的相同代码调用它们,我只在 web.config 中切换 URL。测试有效,生产失败。如果对象为空,我无法理解它怎么可能只用于生产网络服务。
  • 将调试器附加到麻烦的服务器上,看看发生了什么。或者,我会在你的代码中添加调试信息并部署它,看看你得到了什么。您还没有向我们展示发生错误的完整代码。这将是最有帮助的

标签: asp.net web-services


【解决方案1】:

已解决。正如我怀疑错误出在生产服务器配置中。当 sys 团队将服务用户添加到本地管理员时,他们通过 Active Directory 组添加它,据我所知,这需要注销/登录或重新启动。

服务器重启是我的解决方案。

【讨论】:

    猜你喜欢
    • 2010-12-30
    • 1970-01-01
    • 2012-06-30
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    相关资源
    最近更新 更多