没有端点侦听和错误404

时间:2011-08-30 15:03:57

标签: asp.net web-services visual-studio-2010 c#-4.0

我们在生产服务器上部署了一个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(我们已经尝试过)。

3 个答案:

答案 0 :(得分:2)

什么是“/ mex”?这是您服务类中的功能吗?我刚刚在我自己的Webservice.svc上测试过但是无法做到/所以我不确定你能不能这样做......

如果您尝试让客户端连接到您的服务,您应该只能使用.svc URL,然后在.NET生成的客户端对象上调用函数。

答案 1 :(得分:0)

看起来您正在尝试调用元数据交换端点(mex),该端点仅在首先生成元数据(WSDL)时使用。我建议检查你设置服务网址的位置,并确保你最后没有mex部分。

答案 2 :(得分:0)

我们或ISP都没有找到原因而不是与网络服务交谈以获取对数据库的访问权限,而是放置了一个公共IP地址,以便我们可以通过此IP直接访问数据库而不是goin通过网络服务。

谢谢大家,但我很想知道为什么万一发生在未来的另一个时间......