Приложение работает в VS iis express, но не в IIS 8 (v2) - PullRequest
0 голосов
/ 22 января 2020

Мне не повезло с 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">

                &copy; <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 (. ....) один из моих классов использовался до того, как он был должным образом создан.

Я удалю этот вопрос через несколько дней. Спасибо !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...