访问WCF Web服务

时间:2013-11-07 20:53:43

标签: c# wpf wcf web-services

我在WCF中创建了一个服务,并通过FTP将其发布到IIS服务器。

当我向将要使用它的WPF程序添加服务引用时,我得到的是在给定的URL上找不到服务。

当我导航到IIS服务器上的位置以查看错误时,我得到以下内容

  

服务没有应用程序(非基础架构)端点。这可能是因为没有为您的应用程序找到配置文件,或者因为在配置文件中找不到与服务名称匹配的服务元素,或者因为在service元素中没有定义端点。

我正在使用

引用它
https://site/folder/MyService.svc

我在这里可能会缺少什么?

添加了web.config

<?xml version="1.0"?>
<configuration>

<system.web>
 <compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <!-- To avoid disclosing metadata information, set the value below to false before deployment -->
      <serviceMetadata httpGetEnabled="false"/>
      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>

                 

1 个答案:

答案 0 :(得分:2)

你没有给我们太多的帮助......

错误说清楚:服务器上的服务没有定义任何服务端点 - 没有端点,没有连接。

您需要检查服务器端web.config文件。

你有一个<system.serviceModel> / <services> / <service>节点吗?它说什么?您是否可以更新原始问题并向我们展示服务器端web.config<system.serviceModel>部分)

一个常见的错误是<service name="...." />属性必须完全匹配实际实现的类的完全限定类名(包含名称空间的类名)您的服务合同 - 实际包含服务代码的具体类(不是接口!)。

<强>更新

典型/最小<service>标记可能如下所示:

<system.serviceModel>
   <services>
      <service name="NameSpace.YourServiceImplementationClass>
          <endpoint name="DefaultEndpoint"
              address=""   -- no need to specify if you're hosting in IIS
              binding="basicHttpBinding"   -- defines the protocol to use to talk to your endpoint
              contract="NameSpace.IYourServiceContract" />
      </service> 
   </services>
</system.serviceModel>

当然,您可以根据需要添加更多配置 - 您需要选择绑定作为第一步 - 您的客户将如何(使用什么协议和设置)与之交谈你的服务?