VS2012中新创建的WCF项目在WebConfigs中没有服务节点
本文关键字:WebConfigs 服务 节点 项目 新创建 创建 VS2012 WCF | 更新日期: 2023-09-27 18:20:40
我使用Visual Studio 2012创建了一个新的WCF项目,我注意到web.confi
g中没有服务节点来定义服务和合同,但是我将服务部署到azure并成功了,但是我得到了这个错误:
The remote server returned an unexpected response: (413) Request Entity Too Large. In Silverlight
所以我想我需要增加允许的最大请求,但在没有服务节点的情况下如何做到这一点?
从VS 2010开始,WCF添加了默认端点的概念(以及默认绑定和行为),以简化配置。
详细信息可以在以下链接中找到:开发者介绍Window的Communication Foundation 4
在您的情况下,您需要在配置文件中创建一个大小较大的绑定,并将其设置为默认绑定,或者将该绑定分配给显式定义的端点。
默认情况下,WCF(在.NET4+中)将通过http传入的请求分配给basicHttpBinding
。这些协议映射也可以在配置文件中更改。
几个简单的例子可以帮助你(我链接的文章更详细):
要创建默认绑定,只需定义绑定并省略name
属性:
<bindings>
<basicHttpBinding>
<binding maxReceivedMessageSize="10000000" ....>
</basicHttpBinding>
</bindings>
这将使您提供的配置成为使用该配置的服务的默认basicHttpBinding
。
或者,您可以在绑定配置上使用name
属性,然后将其分配给已定义的输入。假设您有一个绑定名称"MyBinding":
<endpoint address="" binding="basicHttpBinding"
bindingConfiguration="MyBinding"
contract="MyService.IMyContract" />
如果您想要除basicHttpBinding
之外的其他内容用于http请求,可以在协议部分中执行此操作:
<system.serviceModel>
<protocolMapping>
<add scheme="http" binding="wsHttpBinding" bindingConfiguration="" />
这种情况下的关键是,您需要创建具有较大值的绑定,然后将其设置为默认值或将其分配给端点(您还需要定义端点)。
正如我所说,这些只是给你一个想法的简单例子,在我链接的文章中还有更多的细节。