从已部署的WCF服务获取404,但可以获取服务定义

时间:2019-07-19 10:07:33

标签: azure wcf

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

<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
一般来说,如果服务描述可用,我们可以通过添加服务引用来生成客户端代理类,服务端点将在配置文件中设置。
enter image description here
然后,我们可以使用客户端代理类来调用服务。

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

请随时告诉我是否有什么可以帮忙的。