【问题标题】:In asp.net, Web Service endpoint is incorrect when client connects to production server在 asp.net 中,客户端连接到生产服务器时 Web 服务端点不正确
【发布时间】: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,表明服务(发现)正在向客户端发送错误的信息(它正在发送服务器的名称和域,而不是“网络”名称)。

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

【问题讨论】:

    标签: asp.net service ip-address endpoint


    【解决方案1】:

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

    【讨论】:

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