首页 > 解决方案 > 从已部署的 WCF 服务中获取 404 但可以获取服务定义

问题描述

我写了一个 WCF 服务。我可以使用 Visual Studio WCF 测试客户端和一个小型控制台应用程序在本地成功运行和调试它。

将服务发布到 Azure 后,我可以浏览到应用服务主页并获得“嘿,应用服务开发人员!” 欢迎页面。

我还可以浏览https://<mydeployment>.azurewebsites.net/<myservice>并获取描述如何创建测试应用程序和获取服务定义的页面。

最后,我可以浏览https://<mydeployment>.azurewebsites.net/<myservice>?wsdl并获取显示为 xml 的服务描述,并从中创建一个测试客户端。

但是,每当我针对 Azure 部署运行测试客户端时,我都会收到 404 响应。我可以在 Azure 日志流中看到相同的 404 响应。

关于我为什么会得到 404 或如何进一步排除故障的任何建议?

标签: azurewcf

解决方案


您使用哪种方式调用服务,服务端点地址是什么?我怀疑服务地址有问题。服务端点地址是相对于服务基地址的。
例如,有以下定义。

<service name="Server4.Calculator">
        <endpoint address="service" binding="customBinding" contract="Server4.ICalculator" bindingConfiguration="mybinding"></endpoint>
        <endpoint address="mex" binding="mexHttpBinding"  contract="IMetadataExchange"></endpoint>
      </service>
</services>

客户端的服务地址应该是 IIS 基地址和服务相对地址。 https://192.168.1.100:8000/service1.svc/service
一般来说,如果服务描述可用,我们可以通过添加服务引用来生成客户端代理类,服务端点会在配置文件中设置。 然后我们可以使用客户端代理类来调用服务。
在此处输入图像描述

ServiceReference1.ServiceClient client = new ServiceClient();
            var result = client.Test();

如果有什么我可以帮忙的,请随时告诉我。


推荐阅读