我们在生产服务器上部署了一个Web服务,并且在尝试调用它时仍然出现此错误:
"There was no endpoint listening at http://www.ourproductionserver.com/ClientService.svc/mex that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details."
在查看InnerException时,它会返回404 File Not Found ...
奇怪的是,如果我们在IE或FireFox中复制/过去与下面的错误(http://www.ourproductionserver.com/ClientService.svc)中给出的完全相同的URL,它会正确显示。 Heum,我们做错了什么?
我们也在本地服务器上试过它,一切正常。
任何人都会得到类似的东西以及如何解决它?
注意:对不起我的英语,我通常会说法语。
我们的webconfig:
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings>
<webHttpBinding>
<binding name="WebBinding"></binding>
</webHttpBinding>
</bindings>
<services>
<service name="ourLib.ServiceImplementations.ClientActionService" behaviorConfiguration="ServiceBehavior">
<endpoint name="WebEndpoint" behaviorConfiguration="EndpointBehavior" address="" binding="webHttpBinding"
contract="ourLib.ServiceContracts.IClientActionService">
</endpoint>
<endpoint contract="ourLib.ServiceContracts.IClientActionService" address="mex" binding="mexHttpBinding"></endpoint>
</service>
<system.serviceModel>
我们的ClientService.svc
<%@ ServiceHost Language="C#" Debug="true" Service="ourLib.ServiceImplementations.ClientActionService" %>
更新 当我们设置为完全信任时,我们发现ISP设置为中等信任级别。可以改变什么吗?如果是的话,我们怎么能改变它而不是web.config(我们已经尝试过)。
答案 0 :(得分:2)
什么是“/ mex”?这是您服务类中的功能吗?我刚刚在我自己的Webservice.svc上测试过但是无法做到/所以我不确定你能不能这样做......
如果您尝试让客户端连接到您的服务,您应该只能使用.svc URL,然后在.NET生成的客户端对象上调用函数。
答案 1 :(得分:0)
看起来您正在尝试调用元数据交换端点(mex),该端点仅在首先生成元数据(WSDL)时使用。我建议检查你设置服务网址的位置,并确保你最后没有mex部分。
答案 2 :(得分:0)
我们或ISP都没有找到原因而不是与网络服务交谈以获取对数据库的访问权限,而是放置了一个公共IP地址,以便我们可以通过此IP直接访问数据库而不是goin通过网络服务。
谢谢大家,但我很想知道为什么万一发生在未来的另一个时间......