【问题标题】:Web application cannot talk to web service when run on IISWeb 应用程序在 IIS 上运行时无法与 Web 服务通信
【发布时间】:2013-11-10 12:57:56
【问题描述】:

我正在我的 asp.net Web 应用程序中调用 Web 服务(用于发送短信)。当我的 Web 应用程序在 Developer Server 上时,调用了 Web 服务并且一切正常,返回了预期的结果。但是,当应用程序在 IIS 上运行时,我无法调用 Web 服务,我得到了这个WebException

“无法连接到远程服务器”

具体来说,InnerException,消息是“无法建立连接,因为目标机器主动拒绝了它 SomeIP:SomePort”,其中 SomeIP 是 Web 服务 IP 地址, SomePort 是 80

(我怀疑问题出在端口 80 上,因为 ping SomeIP 返回响应但在 SomeIP SomePort 上的 Telnet 失败。但我不确定这是否是真正的问题,我的意思是,应用程序在 IIS 上运行时如何设置不同的端口!)

非常感谢任何帮助或想法!

【问题讨论】:

  • 可能是防火墙,生产服务器和开发服务器在同一个网络吗?
  • 它没有连接到端口 80 上的服务,因为那是 IIS 已经在使用的端口。
  • @therealtbs:我已关闭 Windows 防火墙。不确定是否有其他东西阻止了网络服务调用:(
  • @PhoenixReborn:但是sms web服务所在的目标机器上不是80端口吗??它与我机器的80端口有什么关系? (对不起,我对网络概念不太了解)
  • 不,80 端口是 IIS 用来与其他人通信的端口。这是 Web 服务器使用的默认端口。

标签: c# asp.net web-services iis


【解决方案1】:

我遇到了类似的问题,其中单元测试能够成功调用外部 Web 服务,而我正在处理的 asp.net mvc 应用程序却不能。

我必须创建一个 web.config 条目才能使其工作。我正在分享配置条目,我认为它可以帮助有类似问题的人。顺便说一句,本节直接位于 web.config 文件中的根元素下。根据您的上下文替换代理服务器名称和端口。

<system.net>
    <defaultProxy>
      <proxy proxyaddress="http://<proxy server name>:<port>" />
    </defaultProxy>
    <!--<defaultProxy enabled="true" useDefaultCredentials="true">
      <proxy usesystemdefault="True" bypassonlocal="True" />
    </defaultProxy>-->
</system.net>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多