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 添加服务参考不更新配置文件的主要内容,如果未能解决你的问题,请参考以下文章