У меня есть эта досадная ошибка в некоторых моих билдах.
В проекте нет ошибок, потому что, если я соберу снова, проблема исчезнет. Сообщение появляется только при развертывании сайта на 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>
EDIT
Через несколько месяцев эта проблема исчезла. У меня не было проблем больше 1 года. Я думаю, что проблема возникнет снова, когда никто не ожидает этого.
РЕДАКТИРОВАТЬ 2
… уже более 2 лет. Я такой счастливый чувак!
РЕДАКТИРОВАТЬ 3
Я только что прочитал статью о MSDN , и это звучит как проблема, с которой я столкнулся. У меня отключена отладка, но все равно компиляция была "иногда неправильной". Поведение старого провайдера может быть проблемой. Но это только догадки.
Очень большие страницы, содержащие длинные пролеты HTML без серверных блоков (например, <% =%>), могут вызвать переполнение стека при включенной отладочной компиляции, что приведет к сбою приложения. Обратите внимание, что в нашем тестировании была взята страница, которая в ~ 4 раза больше, что вызвало бы аналогичную проблему у старого провайдера, но в этом случае это приводит к сбою всего приложения, в то время как со старым провайдером просто происходит сбой страницы-нарушителя