VS2012添加服务引用不更新配置文件

时间:2013-08-06 11:15:31

标签: c# .net .net-4.5 service-reference

我使用当前在我的开发计算机上的IIS Express上运行的webHttpBinding创建了一个新的IIS主机WCF服务,当我尝试“添加服务引用”时,正确构建了服务和参考。 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>

客户服务参考

enter image description here

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

Question 1

Question 2

Question 3

这篇文章

Blog post

上面的每一个都引用了同样的问题,即取消了我在“引用程序集中重用类型”标记。

enter image description here

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

问题

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

4 个答案:

答案 0 :(得分:7)

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

这在Carlos Figueira Blog Post

中讨论

答案 1 :(得分:0)

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

答案 2 :(得分:0)

今天VS2012再次出现了同样的问题。

我有一套Test,PreProduction和Production web.config 配置,我可以使用&#34;预览转换&#34;,并看到VS2012 修补我的&#34; web.config&#34;与相关设置..

Preview

...但是...当我部署时,好吧,它似乎只包括默认的&#34; web.config&#34;文件没有任何变化。

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

Publish

从&#34; Debug&#34;更改到&#34; PreProduction&#34;为我解决了这个问题。

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

Deploy

(沮丧的叹息。)

目前正在下载VS2013。希望这个版本不那么多了。

答案 3 :(得分:0)

在我的情况下,它是由我在Web服务端设置错误的绑定参数引起的。

binding.ReliableSession.InactivityTimeout = TimeSpan.Maximum;

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