Мне не повезло с MVC, работающим на IIS Windows 2019, даже пробуя новый сгенерированный VS тестовый сайт.
Приложение работает нормально, используя IIS Express
, как https://localhost: 44358 , но не работает на IIS.
В главной сети я add application..
использую диспетчер IIS, псевдоним и физический путь. Приложение не запускается. Мне удалось отследить некоторый код, и IIS прошел регистрацию маршрутов, которые не удалось выполнить позже:
Object reference not set to an instance of an object.
, затем краткий html код из
Source File: C:\inetpub\<redacted>\Views\Shared\_Layout.vbhtml Line: 40
[NullReferenceException: Object reference not set to an instance of an object.]
ASP._Page_Views_Shared__Layout_vbhtml.Execute() in C:\inetpub\<redacted>\Views\Shared\_Layout.vbhtml:40
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +105
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +90
System.Web.WebPages.<>c__DisplayClass40_0.<RenderPageCore>b__0(TextWriter writer) +232
...
, ссылающийся на @Html.ActionLink
.
Затем я попытался запустить его как веб-сайт: в IIS Manager, Add Website
, заполнение site , физический путь и хост имя , с тем же идентичным результатом.
Я подозреваю, что dll, которая определяет @ Html .ActionLink, не загружена должным образом, не знаю, как проверить или исправить.
Полный источник
Здесь определено несколько функций, работающих по назначению.
<!DOCTYPE html>
<html>
<head>
@code
Tell(True, $"_Layout. {TraceBack()}")
End Code
<!-- Must run in a domain logged pool with SQL access -->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title </title>
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/fajs")
@Styles.Render("~/bundles/css")
<style type="text/css">
td {
vertical-align: top;
}
.absolute-bottom {
position: absolute;
bottom: 0em;
}
</style>
</head>
<body class="m-1 p-1">
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse" style="border:0px transparent;">
<i class="fas fa-bars"></i>
</button>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<i class="fas fa-home" style="width:2em;color: Dodgerblue;"></i>
Html.ActionLink("Home", "Index", "Intranet")
</li>
<li>
<i class="fas fa-ice-cream" style="width:2em;color: Dodgerblue;"></i>
Html.ActionLink("Icons", "Icons", "Intranet")
</li>
<li>
<i class="fas fa-money-bill" style="width:2em;color: Dodgerblue;"></i>
Html.ActionLink("Deals", "Deals", "Intranet")
</li>
<li>
<i class="fas fa-concierge-bell" style="width:2em;color: Dodgerblue;"></i>
@Html.ActionLink("Contact", "Contact", "Intranet")
</li>
<li>
<i class="fas fa-address-book" style="width:2em;color: Dodgerblue;"></i>
@Html.ActionLink("About", "About", "Intranet")
</li>
</ul>
<p class="nav navbar-text navbar-right">Identity: @WebIdentity.Name @WebIdentity.AuthenticationType @WebIdentity.User.Value</p>
</div>
</div>
</div>
<div class="container body-content">
@RenderBody()
<footer class="card-footer align-bottom">
<p class="text-center text-capitalize">
© <redacted> @DateTime.Now.ToShortDateString()
@WebDomain\@WebUserName
<!-- (@WindowsIdentity.Name) @WebIdentity.AuthenticationType @WebIdentity.IsAuthenticated -->
</p>
</footer>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required:=False)
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('*[data-autocomplete-url]')
.each(function () {
$(this).autocomplete({
source: $(this).data("autocomplete-url")
});
});
});
</script>
</body>
</html>
✔ ПРИМЕЧАНИЕ
Из-за асинхронной работы внутри механизма IIS и MVC сообщение о диагностике c вводило в заблуждение.
Ошибка была в одной из моих собственных подпрограмм поддержки.
При обработке @ html .ActionLink (. ....) один из моих классов использовался до того, как он был должным образом создан.
Я удалю этот вопрос через несколько дней. Спасибо !!