从ASP.NET应用程序访问Web服务时,我遇到了这个问题
但是当它托管在Windows服务器中时会出现问题
当它托管在桌面上时它工作正常。
我用HttpWebRequest对象调用Web服务。
即使它在HTML / Java Script应用程序的服务器中运行良好。在服务器中托管的ASP.NET应用程序中只出现问题。我得到以下错误。 IIS 8.0安装在服务器中。
Unable to connect to the remote server
System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 153.2.228.76:443 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) at System.Net.HttpWebRequest.GetRequestStream() at VSPTestApplication.UPS.CalculateRate_Click(Object sender, EventArgs e)
System.IO.Stream GetRequestStream(System.Net.TransportContext ByRef)
答案 0 :(得分:0)
从错误消息中看,我注意到您正在尝试点击HTTPS网址。在IIS中运行aspnet时,这可能很棘手,因为您的代码在不同的用户上下文中运行。并且可能不会在该上下文中安装必要的证书。例如,如果目标服务器具有由CA签署的证书,该证书不被客户端的机器(asp.net/iis/windows)信任,则该请求将不会成功。
但是,证书错误会很明显。它不会表现为连接失败。
我建议使用system.net日志记录工具来创建日志文件。这应该有助于解决问题。此外,您应该在Windows服务器上运行wireshark并查看服务器尝试连接的位置。它可能很简单,因为Windows服务器没有与目标的连接。或者中间可能有一个代理正在搞砸网络路径。
要设置system.net日志记录,您可以将以下配置文件放在与运行代码的应用程序相同的目录中。
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.Net">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Cache">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add
name="System.Net"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="System.Net.trace.log"
/>
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose" />
<add name="System.Net.Sockets" value="Verbose" />
<add name="System.Net.Cache" value="Verbose" />
</switches>
有关日志记录的更多详细信息:
答案 1 :(得分:0)
我也遇到了同样的问题,只是通过对网络进行故障排除就解决了。
在Windows->设置->网络和Internet->网络问题排查工具