在 asp.net 中,客户端连接到生产服务器时 Web 服务端点不正确

Posted

技术标签:

【中文标题】在 asp.net 中,客户端连接到生产服务器时 Web 服务端点不正确【英文标题】:In asp.net, Web Service endpoint is incorrect when client connects to production server 【发布时间】:2012-09-10 15:32:41 【问题描述】:

我已经在网上搜索了将近两天,一定遗漏了一些东西(可能是基本的)。

在测试(本地)Web 服务器上,我设置了一个简单的服务,并使用客户端,我发现了该服务并毫无问题地运行它。

使用相同的客户端,我发现相同的服务,但在生产服务器上使用https://MyNewStuff.com/WebServices/MyService.asmx(服务的真实互联网地址)没有问题,但是当我尝试运行它时它失败并出现 EndPointNotFound 异常。经调查发现客户端的app.config不正确如下;

        <endpoint address="https://ProductionWeb.Ourdomain.com/WebServices/MyService.asmx"
            binding="basicHttpBinding" bindingConfiguration="MyServiceSoap"
            contract="MOX24.MyServiceSoap" name="MyServiceSoap" />

即,未正确设置,因为它反映了https://ProductionWeb.Ourdomain.com ...而不是https://MyNewStuff.com/WebServices,表明服务(发现)正在向客户端发送错误的信息(它正在发送服务器的名称和域,而不是“网络”名称)。

对此的任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

如果您的客户端是 Web 应用程序,请将 https://MyNewStuff.com/WebServices/MyService.asmx 放入 Web.Release.config。

【讨论】:

这似乎正是问题所在。我该如何从服务器端做到这一点? 抱歉,阿德里安,我之前的回答为时过早且被误导了,所以我现在进行了编辑,假设您的客户端是一个 Web 应用程序。是吗? 我的客户端是一个表单应用程序,但它只是一个测试台。我们正在开发网络服务,客户可以使用他们自己的软件(无论是网络、应用程序、电话等)与之进行通信。他们正在发现服务描述等,但是当他们尝试运行它们时,会出现端点地址错误,因为在他们端指定的端点不是正确的“网络”地址(而是无法通过网络访问的内部地址)。然后他们必须手动更正端点地址并继续前进。但这不方便,应该是自动的。 所以您要使用 Windows 应用程序发布 .config 文件?如果只是为了测试,我建议将默认端点设置为生产端点,然后只覆盖本地测试环境中的设置 不,当然不是(你怎么能发布.config?)对不起,我必须承认我无法理解那部分。关于设置端点,正如我上面问的那样,如何设置?

以上是关于在 asp.net 中,客户端连接到生产服务器时 Web 服务端点不正确的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET Core 生产服务器上禁用“尝试重新连接到服务器”消息

使用新的 ASP.NET Core 应用程序连接到 SQL Server 时出现问题

在我的 ASP.Net 项目中无法从 VS2019 连接到 SQL Server 数据库

部署到 Azure 应用服务时,Asp.net 成员资格提供程序无法连接到本地 SQL Server

将本地数据库连接到 ASP.NET [关闭]

Azure asp.net Web 应用程序尝试连接到 Oracle 运行时集成链接服务