двойные заголовки, отправленные iis с использованием mvc3

В настоящее время я занимаюсь обновлением своего mvc2 до проекта mvc3. Я использовал средство обновления приложений ASP.NET MVC 3 , и теперь я получаю некоторые странное поведение.

Заголовки http-reposonse для простого запроса теперь выглядят так:

HTTP/1.1 200 OK 
Cache-Control:private  
Content-Type: text/html;
charset=utf-8 
Server:Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNetMvc-Version: 2.0 
Server:Microsoft-IIS/7.5 
X-AspNet-Version:4.0.30319 
X-Powered-By: ASP.NET Date: Thu, 10 Feb 2011 09:12:52 GMT
Content-Length: 11416

Почему заголовок сервера отправляется дважды и есть ли заголовок как для mvc2, так и для mvc3? Это нормальное поведение или здесь что-то не так?


person Sander    schedule 10.02.2011    source источник


Ответы (1)


Это немного озадачивает, я бы, вероятно, порекомендовал три вещи:

1) Убедитесь, что ваш web.config имеет оператор перенаправления привязки сборки, что-то вроде этого:


<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

2) Убедитесь, что папки bin и obj пусты, и очистите папку временных файлов ASP.NET (%FrameworkDir%\%FrameworkVersion%\Temporary ASP.NET Files)

3) Трижды проверьте сборки, на которые вы ссылаетесь, чтобы убедиться, что у вас есть только сборки версии 3.0.

Здесь я немного коснусь тьмы, потому что я не совсем уверен, как два обработчика могут так хорошо сосуществовать и не вызывать у вас других проблем. Вы можете полностью отключить заголовки, выполнив это в Application_Start в файле global.asax.cs:


MvcHandler.DisableMvcResponseHeader = true;

но это, очевидно, также избавит вас от того, что вы предположительно хотите, и не решит основную проблему.

person Mirko    schedule 15.05.2012