Я пытаюсь использовать сообщение в блоге Steve Sanderson, чтобы отредактировать список переменных длины в моем представлении ASP MVC 3. Проект строит отлично, однако всякий раз, когда отображается частичное представление, программа взрывается в строке using(Html.BeginColletionItem()
с этой ошибкой:
AccessViolationException was unhandled
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Вот скриншот полного исключения
Полная трассировка стека ниже
at Microsoft.VisualStudio.WebHost.Host.ProcessRequest(Connection conn)
at Microsoft.VisualStudio.WebHost.Server.OnSocketAccept(Object acceptedSocket)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Частичный вид
@model Monet.Models.AgentRelationshipCodes
@using (Html.BeginCollectionItem("AgentRelationshipCodes")) @*Exception thrown here*@
{
<tr>
<td>@Html.EditorFor(model => model.EffectiveDate, "NullableDate", new { @class = "relCodeDate2" })</td>
<td>@Html.EditorFor(model => model.RelationshipId, "NullableDate", new { @class = "relDistCode1", maxlength = 3 })</td>
@Html.HiddenFor(model => model.ID)
@Html.HiddenFor(model => model.RelCodeOrdinal)
</tr>
}
Просмотр
<script>
$(document).ready(function() {
$(".addCode").click(function () {
$.ajax({
url: '@Url.Action("NewRelationshipCode", "AgentTransmission")',
dataType: 'html',
cache: false,
success: function (html) {
console.log(html);
$("#Experiment > tbody").append(html);
}
})
});
});
</script>
.
.
<fieldset>
<legend>Relationship Codes</legend>
<table id="Experiment">
<thead>
<tr>
<th>Relationship Effective Date</th>
<th>Relationship Dist Code</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.AgentRelationshipCodes)
{
@Html.Partial("AddRelationshipCodePartial", item)
}
</tbody>
</table>
<br/>
<a href="javascript:void(0)" class ="addCode">Add Another</a>
</fieldset>
контроллер
[HandleProcessCorruptedStateExceptions]
public ViewResult NewRelationshipCode()
{
return View("AddRelationshipCodePartial", new AgentRelationshipCodes());
}
AgentRelationshipCodes
namespace Monet.Models
{
using System;
using System.Collections.Generic;
public partial class AgentRelationshipCodes
{
public int ID { get; set; }
public int RelCodeOrdinal { get; set; }
public string RelationshipId { get; set; }
public Nullable<System.DateTime> EffectiveDate { get; set; }
public System.DateTime LastChangeDate { get; set; }
public string LastChangeId { get; set; }
public virtual AgentTransmission AgentTransmission { get; set; }
}
}
ИЗМЕНИТЬ
Мне удалось заставить демо работать в проекте за пределами того решения, которое я использую прямо сейчас, поэтому он, видимо, имеет отношение к некоторым DLL в этом рабочем пространстве. Однако теперь я выше своего рейтинга, так как я не уверен, как отлаживать что-то подобное. Вот исключения, которые WinDbg идентифицируют перед тем, как Visual Studio выбрасывает AccessViolationException
. Есть много информации между исключениями, которые бросают, если это кому-то понадобится, сообщите мне.
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\d12f4fda3d1bfabf888342e96983e9a7\mscorlib.ni.dll
*** ERROR: Module load completed but symbols could not be loaded for C:\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\d12f4fda3d1bfabf888342e96983e9a7\mscorlib.ni.dll
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Xaml\9d3572e8c3c314a0f12383d41e8bee78\System.Xaml.ni.dll
*** ERROR: Module load completed but symbols could not be loaded for C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Xaml\9d3572e8c3c314a0f12383d41e8bee78\System.Xaml.ni.dll
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\Presentatio5ae0f00f#\8711b01d60a94d6ef6a02d7fd0578493\PresentationFramework.ni.dll
*** ERROR: Module load completed but symbols could not be loaded for C:\Windows\assembly\NativeImages_v4.0.30319_32\Presentatio5ae0f00f#\8711b01d60a94d6ef6a02d7fd0578493\PresentationFramework.ni.dll
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\WindowsBase\ac2e26bafa70e93b307087d7fe6b9dd2\WindowsBase.ni.dll
*** ERROR: Module load completed but symbols could not be loaded for C:\Windows\assembly\NativeImages_v4.0.30319_32\WindowsBase\ac2e26bafa70e93b307087d7fe6b9dd2\WindowsBase.ni.dll
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\Microsoft.V4e91a071#\207156ac71b58fb31310a2f78c3d0c44\Microsoft.VisualStudio.Web.Application.ni.dll
*** ERROR: Module load completed but symbols could not be loaded for C:\Windows\assembly\NativeImages_v4.0.30319_32\Microsoft.V4e91a071#\207156ac71b58fb31310a2f78c3d0c44\Microsoft.VisualStudio.Web.Application.ni.dll
UPDATE
Выбрав опцию "Нативный код" в меню "Отладчики проекта"
Теперь я получаю несколько более подробное сообщение об ошибке:
Наконец, переключившись на IIS Express, как предлагается ниже, я все еще получаю AccessViolationException
. Вот настройки, которые я использовал для включения IIS для отладки (в рамках свойств проекта)
Вот сообщение об ошибке
Стек вызовов: