0
MaxRecievedMessageSize我託管一個WCF REST服務並使用相同的webrole。配置在代碼隱藏中完成。我已經嘗試了這麼多的解決方案,並在此發佈,無法覆蓋從後面的代碼
但我無法弄清楚爲什麼我無法覆蓋MaxRecievedMessageSize
。如果大小超過64kb。它拋出異常。
WebChannelFactory<X> channelFactory;
if (!ChannelFactories.ContainsKey(endpointName.ToString(CultureInfo.InvariantCulture)))
{
channelFactory = new WebChannelFactory<X>(new Uri(endpointName));
lock (ChannelFactories.SyncRoot)
{
ChannelFactories[endpointName.ToString(CultureInfo.InvariantCulture)] = channelFactory;
}
}
else
{
channelFactory =
ChannelFactories[endpointName.ToString(CultureInfo.InvariantCulture)] as
WebChannelFactory<X>;
}
//Configure The Size here
if (channelFactory != null)
{
channelFactory.Endpoint.Binding = new WebHttpBinding
{
MaxReceivedMessageSize = 2147483647,
MaxBufferSize = 2147483647,
ReaderQuotas =new XmlDictionaryReaderQuotas()
{
MaxArrayLength = 2147483647,
MaxStringContentLength = 2147483647,
MaxDepth = 2147483647,
MaxNameTableCharCount = 2147483647,
MaxBytesPerRead = 2147483647
},
MaxBufferPoolSize = 2147483647,
OpenTimeout = new TimeSpan(0, 0, 10, 0),
ReceiveTimeout = new TimeSpan(0, 0, 10, 0),
TransferMode = TransferMode.Streamed,
CloseTimeout = new TimeSpan(0, 0, 10, 0),
SendTimeout = new TimeSpan(0, 0, 10, 0)
};
而且Web.Config中
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<diagnostics>
<messageLogging logEntireMessage="true" logMessagesAtServiceLevel="false" logMessagesAtTransportLevel="false" logMalformedMessages="true" maxMessagesToLog="5000" maxSizeOfMessageToLog="2000"></messageLogging>
</diagnostics>
<standardEndpoints></standardEndpoints>
</system.serviceModel>