为什么WCF服务仅在删除端点时才起作用?

时间:2014-08-09 07:00:39

标签: c# web-services wcf endpoint

我们已经获得了一些服务,这些服务在开发中设置为使用本地IIS运行。在每个服务项目的web.config中,除其他外,还有服务的端点。这在开发和生产中都有效。

昨天我在笔记本电脑上设置了开发环境,但我的服务问题非常奇怪。当我尝试将浏览器导航到其中任何一个时,我收到400错误,我尝试了很多东西让它们工作但最终我发现如果我从web.config中删除了端点,那么它们就可以工作了。这与我在桌面和其他开发人员身上的情况完全相反。必须存在端点才能运行服务的机器。

这对我来说完全没有意义,在这一点上,我所知道的唯一区别是我的笔记本电脑在Windows 7上运行,而所有其他机器都在Windows 8上运行。

任何人都可以解释一个服务只有在一台PC上定义端点时才能工作,但是在另一台PC上它只能在端点未定义时才能工作吗?这个人肯定感到困惑。

编辑:

在我的本地开发机器上(特别是我的带有Windows 7的笔记本电脑)我已经从web.config中取出了所有内容,但是对于使网页显示为"您创建了一项服务至关重要。测试这项服务......等等。顺利上来剩下的就是:

<configuration>
  <appSettings>
    <add key="LOG_WCF_CALLS" value="true"/>
  </appSettings>

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

&#34; LOG_WCF_CALLS&#34; AppSetting显然不是必需的,但仅限于我们的服务,因为它在静态构造函数中查找它。 serviceMetadata标记允许我使用Web浏览器导航到该服务,并查看&#34;您创建了一个服务。&#34;页面,但实际上不需要实际使用该服务。因此,如果没有这两件事,web.config中根本就没有任何东西。我不明白当我导航到这个服务时,如果没有定义任何端点的话,这个服务是如何出现的?

0 个答案:

没有答案