2011-07-18 10 views
8

IIS 7.5 Windows 2008 R2'de barındırılan bir WCF REST hizmeti var. Hizmet, bir istemcinin ~ 25 MB'den daha büyük bir ileti göndermeye çalıştığı durumlar dışında beklendiği gibi çalışır. Özel olarak, ~ 25 MB'lik bir mesaj boyutu gönderirken, servis, mesajı ~ 31 MB boyutunda bir mesaj gönderirken, mesajı düzgün bir şekilde alıp işler.IIS 7.5 barındırılan WCF hizmeti, yalnızca büyük isteklerde 404 ile EndpointNotFoundException'ı atar

VS 2010'da yerel olarak barındırıldığında, ileti hatasız olarak alınır. IIS 7.5 üzerinde uzaktan barındırıldığında, hizmet hemen yanıt verir: "System.ServiceModel.EndpointNotFoundException: Son nokta dinleme dinleniyor ...", iç istisna şöyledir: "Uzak sunucu bir hata verdi: (404) Bulunamadı" .

Bu, maksimum ileti boyutu ayarı yetersiz olduğunda ortaya çıkan istisnadan farklıdır. Yerel olarak barındırılan bir hata almıyorum verdiğim zaman benim tahminim, IIS veya belki bazı güvenlik duvarı ayarları ile ilgili bir şey var. Eğer yükleme veya akış çatlıyor düşünebilirsiniz Bunun dışında

<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <httpRuntime requestPathInvalidCharacters="" maxRequestLength="512000"/> 
    </system.web> 
    <system.serviceModel> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true"/> 
    <bindings> 
     <webHttpBinding> 
     <binding maxReceivedMessageSize="524288000" maxBufferSize="524288000"> 
      <readerQuotas maxStringContentLength="524288000" maxArrayLength="524288000"/> 
     </binding> 
     </webHttpBinding> 
    </bindings> 
    </system.serviceModel> 

cevap

13

Sizi ısırdıran IIS'nin maksimum yükleme boyutu. Varsayılan değer 30 MB'tır. Sen web.config tamir edebiliriz: Ayrıca Request Filtreleme/Özellik Ayarları yerde, IIS yöneticisinde değiştirebilirsiniz

<system.webServer> 
    <security> 
     <requestFiltering> 
      <requestLimits maxAllowedContentLength="524288000"/> 
     </requestFiltering> 
    </security> 
</system.webServer> 

. Düzeltilecek değer "İzin verilen maksimum içerik uzunluğu (bayt)" dır.

0

Eğer maksimum cadı int maks ayarı değerleri deneyebilirsiniz, 2147483648 geçerli:

Bu

yapılandırma olduğunu.

İlgili konular