У меня есть эта досадная ошибка в некоторых моих сборках.
В проекте нет ошибки, потому что, если я снова создам, проблема исчезнет. Сообщение появляется только при развертывании сайта на сервере Windows 2008 Server.
Сначала я подумал, что это может быть проблема с временными файлами, но это не так. Я развернул сборку в другую сеть, и ошибка все еще появляется.
Ошибка при случайных действиях сайта. В большинстве случаев сборки в порядке, но каждая 3-я или 4-я сборка создает ошибки времени выполнения.
Я использую WebdeploymentProject в режиме выпуска. Представления предварительно скомпилированы.
Это не В ASP.NET MVC я сталкиваюсь с неправильной ошибкой типа при рендеринге страницы с правильным типизированным объектом, поскольку представления имеют совершенно разные имена.
Как я могу отладить эту проблему или как я могу получить помощь для этого?
Вот мой WebDeploymentProject
<!--
Microsoft Visual Studio 2008 Web Deployment Project
http://go.microsoft.com/fwlink/?LinkID=104956
-->
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{E5E14CEB-0BCD-4203-9A5A-34ABA9C717EA}</ProjectGuid>
<SourceWebPhysicalPath>..\B2CWeb</SourceWebPhysicalPath>
<SourceWebProject>{3E632DB6-6DB3-4BD0-8CCA-12DE67165B48}|B2CWeb\B2CWeb.csproj</SourceWebProject>
<SourceWebVirtualPath>/B2CWeb.csproj</SourceWebVirtualPath>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>.\Debug</OutputPath>
<EnableUpdateable>false</EnableUpdateable>
<UseMerge>true</UseMerge>
<SingleAssemblyName>B2CWeb_Build</SingleAssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>false</DebugSymbols>
<OutputPath>..\B2CWeb_Deploy\</OutputPath>
<EnableUpdateable>false</EnableUpdateable>
<UseMerge>true</UseMerge>
<SingleAssemblyName>B2C_Web</SingleAssemblyName>
<ContentAssemblyName>
</ContentAssemblyName>
<DeleteAppCodeCompiledFiles>false</DeleteAppCodeCompiledFiles>
</PropertyGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.WebDeployment.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="BeforeMerge">
</Target>
<Target Name="AfterMerge">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
ИЗМЕНИТЬ
Спустя несколько месяцев эта проблема исчезла. У меня не было проблем уже более 1 года. Думаю, проблема снова наступит, когда никто этого не ожидает.
РЕДАКТИРОВАТЬ 2
... уже более 2 лет. Я такой счастливый чувак!
РЕДАКТИРОВАТЬ 3
Я просто прочитал статью о MSDN, и это звучит как проблема, которую я имел. У меня отключена отладка, но компиляция была "иногда неправильной". Поведение старого провайдера может быть проблемой. Но это просто догадывается.
Очень большие страницы, содержащие длинные интервалы HTML без серверных блоков (например, <% =% > ), могут привести к переполнению стека, когда включена компиляция отладки, которая приведет к сбою приложения. Обратите внимание, что при нашем тестировании его занимает страница с размером ~ 4x, которая создавала аналогичную проблему у старого провайдера, но в этом случае она вырывает все приложение, тогда как со старым провайдером он просто терпит неудачную страницу