VS2012 添加服务参考不更新配置文件

Posted

技术标签:

【中文标题】VS2012 添加服务参考不更新配置文件【英文标题】:VS2012 Add Service Reference not updating config file 【发布时间】:2013-08-07 08:55:57 【问题描述】:

我使用webHttpBinding 创建了一个新的 IIS 主机 WCF 服务,该服务当前在我的开发机器上的 IIS Express 上运行,当我尝试“添加服务引用”时,该服务已正确构建并且 Reference.cs 文件看起来不错,但 web.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>

客户服务参考

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

Question 1

Question 2

Question 3

还有这篇文章

Blog post

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

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

问题

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

【问题讨论】:

【参考方案1】:

好的,向实现WebHttpBinding WCF 绑定的服务添加服务引用似乎存在问题。

这在Carlos Figueira Blog Post中讨论

【讨论】:

这是我的问题的原因。从 Visual Studio 生成服务引用时,配置为类似 RESTful 服务的 WCF 服务存在此问题 那有什么解决办法呢?不能在控制台应用程序中使用此 WCF 服务吗?【参考方案2】:

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

【讨论】:

我删除了绑定上的所有选项,删除并重新创建了服务引用,但没有解决问题。 你必须绑定。但它是在适当的方式。【参考方案3】:

我今天在使用 VS2012 时又遇到了同样的问题。

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

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

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

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

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

(郁闷的叹了口气。)

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

【讨论】:

【参考方案4】:

在我的情况下,这是由于我在 Web 服务端设置了错误的绑定参数造成的。

binding.ReliableSession.InactivityTimeout = TimeSpan.Maximum;

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

【讨论】:

以上是关于VS2012 添加服务参考不更新配置文件的主要内容,如果未能解决你的问题,请参考以下文章

vs2012怎么配置opencv

添加参考时在设计时更新配置文件

vs2012已附加有调试器,但是没有将该调试器配置为调试此未经处理的异常

vs2008 c#.net如何配置global.asax

vs2012怎么添加web引用

vs2012无法启动已配置的开发Web服务器