我写了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或如何进一步排除故障的任何建议?
答案 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
一般来说,如果服务描述可用,我们可以通过添加服务引用来生成客户端代理类,服务端点将在配置文件中设置。
然后,我们可以使用客户端代理类来调用服务。
ServiceReference1.ServiceClient client = new ServiceClient();
var result = client.Test();
请随时告诉我是否有什么可以帮忙的。