在URL中使用计算机名称会导致连接到Web服务时出现问题

我工作的一组应用程序都访问我们拥有的相同的8个Web服务。 这些服务和应用程序全部驻留在同一个框中,并且在尝试连接到Web服务时都使用计算机名称。

例如:

如果我有一个名为MapDataService的Web服务,并且有一个访问它的应用程序,它将通过URL访问它: http://COMPUTERNAME/MapDataService/MapDataService.asmx 。

这适用于访问Web服务的大多数应用程序。 但是,我们有几个应用程序,在URL中使用计算机名称时,将不会获取从服务返回的数据(实际上返回503)。 为了使其正常工作,需要使用系统的IP地址来代替COMPUTERNAME。

这让我感到非常奇怪,正如我前面提到的那样,所有的应用程序和服务都在同一个盒子里,大多数其他应用程序使用COMPUTERNAME而没有问题。

有人能给我一些见解,可能是什么原因造成的? 我们无法访问IIS日志,我们得到的日志(这在客户站点上)并不是非常有用。

我同意BillN。

AWinter认为,503错误只能由服务器发送到客户端,因为“服务器当前无法处理由于服务器的临时超载或维护而导致的请求”。 ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html )只要服务器没有响应(在一定的时间内),您的客户端可能会报告错误。

从无法连接到Web服务的客户端尝试PING COMPUTERNAME。 假设服务器一般会响应Ping,这会告诉你DNS是否工作正常。

您可以手动将服务器的COMPUTERNAMEinput到客户端的HOSTS文件中,以查看是否有帮助,但是如果是这样,还有其他一些DNS问题和编辑HOSTS只是一个创可贴。 修复真正的问题,如果可能的话。

根据我们有限的信息,也有可能服务器有时会暂时超载。 如果在使用COMPUTERNAME时总是得到503,而在使用IP地址时永远得不到它,但这可能并非如此。

这些应用程序是否都在同一个系统上运行? 这听起来像一些应用程序没有parsingIP地址的主机名,所以你必须为他们做。 我会看看DNS /主机文件的问题。

你说有几个应用程序无法通过计算机访问web服务。 其他应用程序可以通过computername进入该web服务吗? 你可以手动使用浏览器吗?

如果一些应用程序针对一个web服务工作,而另一些不针对同一个web服务,我会build议这是客户端应用程序的内部设置(连接string等)的问题,

如果所有应用都针对特定的web服务,那么我会看看是否使用主机头或可能阻止特定DNS名称的东西。 或者应用程序的configuration使用正确的身份validation等。