【问题标题】:wcf service no config file when adding service reference添加服务引用时 wcf 服务没有配置文件
【发布时间】:2012-08-13 16:38:06
【问题描述】:

我有一个 wcf 服务,我尝试使用 svcutil 和向客户端测试项目添加服务引用来添加它。在这两种情况下,都没有创建新的配置文件,随后客户端测试将不会运行,因为它没有看到端点。为什么会这样,这是我的 WCF 服务的 web.config 文件。

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

<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings>
  <webHttpBinding>
    <binding name="webHttpBinding" crossDomainScriptAccessEnabled="true" />
  </webHttpBinding>
</bindings>
<behaviors>
  <endpointBehaviors>
    <behavior name="web">
      <webHttp />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="webHttpBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<services>
 <service behaviorConfiguration="webHttpBehavior" name="WcfInstanceRules2.Service1">
    <endpoint address="" 
    binding="webHttpBinding" bindingConfiguration="webHttpBinding"   
    contract="WcfInstanceRules2.IService1" 
    behaviorConfiguration="web"/>
  </service>
</services>

【问题讨论】:

  • 可能很明显,但是您的客户端应用程序中有现有的配置文件吗?我还会为您的 bindingConfiguration 指定一个与绑定名称不同的名称,例如: bindingConfiguration="webHttpBindingConfiguration"
  • 是的,客户端中有一个现有的 web.config 文件。我将更改绑定配置名称
  • 虽然使用你的服务不应该创建一个新的配置文件。它应该只是将一个客户端节点添加到您现有的文件中。同样,这可能很明显,但您的 OP 建议您正在寻找在消费时创建的文件。
  • 我从用于创建应该生成新配置文件的 WCF 的教程中得到这个。但是,在原始配置文件中也没有添加客户端节点。

标签: visual-studio-2010 wcf wcf-client


【解决方案1】:

如果您使用的是 webHttpBinding,那么您正在编写一个 RESTful 服务,对吗? REST 服务不会像其他基于 SOAP 的服务一样通过 Visual Studio 或通过 SvcUtil.exe“使用”(例如,将使用基于 SOAP 的绑定,如 basicHttpBinding 或 wsHttpBinding 等)。您可以通过从 jQuery 之类的方式调用服务来“使用”该服务:

$.getJSON("Service1.svc/uriTemplateNameHere", { param: myParameter },
            function (result) {
                // do something
            });

你能发布你的 WCF 代码吗?

【讨论】:

  • 感谢您的回复。所以我知道我需要更改我的配置文件以适应 REST 服务并通过 jQuery 调用此服务。
  • 您的配置已经设置为 RESTful 服务并且看起来有效。根据您的配置文件,我不得不假设您所遵循的整个教程是用于创建 RESTful 服务。这里的关键是您不会通过 Visual Studio 使用此服务(VS 在内部使用 SvcUtil.exe),因为它不是基于 SOAP 的服务。如果您的服务使用 HTTP GET 并返回 JSON,您只需浏览到它并以 JSON 字符串的形式查看返回值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
相关资源
最近更新 更多