2

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

当我将服务引用添加到将使用它的 WPF 程序时,我发现在给定的 url 上找不到服务。

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

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

我通过使用来引用它

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>

4

1 回答 1

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>

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

于 2013-11-07T21:09:27.777 回答