2013-06-30 39 views
1

我已經使用Visual Studio 2012創建了一個新的WCF項目, 我注意到web.confi g中沒有服務節點來定義服務和合同,但是我部署到Azure中的服務和它的工作,但是我真的收到此錯誤:在VS2012中新創建的WCF項目不具有WebConfigs中的服務節點

The remote server returned an unexpected response: (413) Request Entity Too Large. In Silverlight 

所以我想我需要提高的最大允許請求,但我怎麼做,與無服務節點?

回答

1

從VS 2010開始,WCF添加了默認端點(以及默認綁定和行爲)的概念,以簡化配置。

的細節可以在此鏈接中找到:A Developer's Introduction to Window's Communication Foundation 4

在你的情況,你需要建立在具有大尺寸的配置文件中的綁定,並且或者設置爲默認綁定或分配該綁定到明確定義的端點。

默認情況下,WCF(在.NET 4+中)將通過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="" /> 

的關鍵在於你的情況您需要創建具有較大值的綁定,然後將其設置爲默認值或將其分配給端點(您還需要定義)。

正如我所說,這些只是給你一個想法的簡單例子,而且我鏈接的文章中有更多的細節。