我使用当前在我的开发计算机上的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>
客户服务参考
经过一些调查后,我发现了这些StackOverflow问题
这篇文章
上面的每一个都引用了同样的问题,即取消了我在“引用程序集中重用类型”标记。
问题是它没有解决问题。我尝试过更新,删除和重新创建服务引用,但它从不更新配置文件。
问题
这是服务器端配置的问题吗?或者这是客户端的问题?如何更改以使代理生成按预期工作?
答案 0 :(得分:7)
好的,看起来在向实现WebHttpBinding WCF绑定的服务添加服务引用时存在问题。
中讨论答案 1 :(得分:0)
从maxBufferPoolSize="2097152" maxBufferSize="2097152"
文件中删除web.config
。然后尝试更新您的服务。确保正确提到你的Bindings。
答案 2 :(得分:0)
今天VS2012再次出现了同样的问题。
我有一套Test,PreProduction和Production web.config 配置,我可以使用&#34;预览转换&#34;,并看到VS2012 是修补我的&#34; web.config&#34;与相关设置..
...但是...当我部署时,好吧,它似乎只包括默认的&#34; web.config&#34;文件没有任何变化。
原因是VS2012似乎弄乱了它的配置,并且在Publish对话框中,突然我的PreProduction配置与Debug相关联。嗯?
从&#34; Debug&#34;更改到&#34; PreProduction&#34;为我解决了这个问题。
或者,至少,它向我推了一步,但是在尝试部署时,我仍然遇到VS2012弄乱我的配置名称的问题。
(沮丧的叹息。)
目前正在下载VS2013。希望这个版本不那么多了。
答案 3 :(得分:0)
在我的情况下,它是由我在Web服务端设置错误的绑定参数引起的。
binding.ReliableSession.InactivityTimeout = TimeSpan.Maximum;
将此设置为System.TimeSpan(0,10,0);绑定配置在web.config文件中生成。