14

我已经使用webHttpBinding创建了一个新的 IIS 主机 WCF 服务,该服务当前在我的开发机器上的 IIS Express 上运行,当我尝试“添加服务引用”时,该服务已正确构建并且 Reference.cs 文件看起来不错,但网络.config 或 app.config 文件未更新。

没有收到警告或错误消息。

服务和客户端都针对.Net 4.5。

服务配置

  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="webInteropSecureBinding" allowCookies="false" maxBufferPoolSize="2097152" maxBufferSize="2097152" maxReceivedMessageSize="2097152">
          <security mode="Transport" />
        </binding>
      </webHttpBinding>
    </bindings>
    <services>
      <service name="PsmDataProvider.PsmProvider" behaviorConfiguration="SecureRest">
        <clear />
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="webInteropSecureBinding" name="PsmProvider" contract="PsmDataProvider.IPsmProvider" listenUriMode="Explicit" behaviorConfiguration="webHttpBehavior" />
        <endpoint address="mex" binding="mexHttpsBinding" name="mex" contract="IMetadataExchange" listenUriMode="Explicit" />
        <host>
          <baseAddresses>
            <add baseAddress="https://localhost:44300/PsmProvider/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SecureRest">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="webHttpBehavior">
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

客户端配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

客户服务参考

在此处输入图像描述

经过一些调查,我发现了这些 StackOverflow 问题

问题 1

问题2

问题 3

还有这个帖子

博文

上面的每一个都提到了我已经完成的取消勾选“在引用程序集中重用类型”标志的相同问题。

在此处输入图像描述

问题是它没有解决问题。我尝试过更新、删除和重新创建服务引用,但它从不更新配置文件。

问题

这是服务器端配置的问题吗?或者这是客户端的问题?如何进行更改以使代理生成按预期工作?

4

4 回答 4

7

好的,看起来在向实现WebHttpBinding的服务添加服务引用时存在问题 WCF 绑定的服务添加服务引用时存在问题。

Carlos Figueira 博客文章中对此进行了讨论

于 2013-08-21T07:58:06.267 回答
0

maxBufferPoolSize="2097152" maxBufferSize="2097152"从您的web.config文件中删除。然后尝试更新您的服务。确保正确提及您的绑定。

于 2013-08-21T06:31:49.640 回答
0

就我而言,这是由于我在 Web 服务端设置了错误的绑定参数引起的。

binding.ReliableSession.InactivityTimeout = TimeSpan.Maximum;

将此设置为 System.TimeSpan(0, 10, 0); 绑定配置在 web.config 文件中生成。

于 2014-09-30T05:16:00.223 回答
0

我今天在 VS2012 上又遇到了同样的问题。

我有一组测试、预生产和生产web.config配置,我可以使用“预览转换”,并看到 VS2012正在使用相关设置修补我的“web.config”..

预习

...但是...当我部署时,它似乎只是包含默认的“web.config”文件而没有任何更改。

原因是 VS2012 似乎弄乱了它的配置,在 Publish 对话框中,突然我的 PreProduction 配置与 Debug 相关联。嗯?

发布

将其从“调试”更改为“预生产”为我解决了这个问题。

或者,至少,它让我向前迈了一步,但我仍然遇到 VS2012 在尝试部署时弄乱我的配置名称的问题。

部署

(郁闷的叹了口气。)

目前正在下载VS2013。希望此版本的错误更少。

于 2014-02-19T07:56:00.730 回答