ASP. NET MVC приложение работает в режиме отладки, но не при публикации с использованием Plesk и GoDaddy - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть приложение MVC, которое отлично работает в режиме отладки и тестирования, но после того, как я опубликовал sh, используя ftp для godaddy, веб-сайт открывается и работает при переключении между домашней страницей и страницей входа. Если я пытаюсь войти в систему, я получаю сообщение об ошибке или если я пытаюсь использовать окно поиска на моей домашней странице, я также получаю сообщение об ошибке. Вот скриншот: Error

После того, как я вхожу в систему или в основном что-либо или чем 'mydomain'.com/Home/Index/ Я получаю эту ошибку, если я пытаюсь 'mydomain'.com/Home/Search или 'mydomain'.com/Search/Index любой другой контроллер или действие я получаю это. В чем может быть причина, потому что я все перепробовал? Например, HomeController / Search:

public ActionResult Search(string search, string searchlast)
    {
        var doctors = from d in db.Doctors
                      select d;
        if (!String.IsNullOrEmpty(search) || !String.IsNullOrEmpty(searchlast))
        {
            doctors = doctors.Where(d => d.FirstName.Contains(search) && d.LastName.Contains(searchlast));
            return View(doctors.ToList());
        }
        return RedirectToAction("Index", "Home");
    }

Вот Views / Home / Search, который выдает ошибку:

@model IEnumerable<Systemz.Models.Check>
@{
    ViewBag.Title = "Search";
}

<div class="jumbotron">
    <h2>Check</h2>
    <h4>Check for availability.</h4>
</div>

@using (Html.BeginForm("Search", "Home", FormMethod.Post))
{
    <p>
        First Name: @Html.TextBox("search") Last Name: @Html.TextBox("searchlast")
        <input type="submit" value="Search" name="search" />
        <a asp-action="Search" asp-controller="Home"></a>
    </p>
}

<table class="table table-hover dataTable">
    <div class="row">
        <div class="col-md-4">
            <thead class="bd-dark white-text">
                <tr>
                    <th>
                        Title:
                    </th>
                    <th>
                        First Name:
                    </th>
                    <th>
                        Last Name:
                    </th>
                    <th>
                        Address:
                    </th>
                    <th>
                        Is Available?
                    </th>
                </tr>
            </thead>
            <tbody>
                @foreach (var item in Model)
                {
                    <tr>
                        <td>
                            @Html.DisplayFor(modelItem => item.Title)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.FirstName)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.LastName)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.Address)
                        </td>
                        <td>
                            @if (item.IsAvailable == true)
                            {<p><a class="btn btn-success"></a></p> }
                            else
                            { <p><a class="btn btn-danger"></a></p>}
                        </td>
                    </tr>
                }
            </tbody>
        </div>
    </div>
</table>

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Вы должны загрузить свою базу данных. На вашем сервере Godaddy нет такой вещи, как (LocalDb). Вы также должны загрузить свою базу данных в Godaddy, выяснить строку подключения к этому местоположению, а затем правильно развернуть ее на своем сайте. Если перед ним нет брандмауэров, вы даже можете проверить соединение с этой базой данных с вашего локального компьютера.

Редактировать: и этого недостаточно, чтобы просто загрузить файл базы данных. Вы должны настроить базу данных с помощью собственного инструмента, чтобы она правильно подключалась и все такое.

0 голосов
/ 28 февраля 2020

Ответ от @Daniel Lorenz немного помог, я изначально думал, что это может быть <connectionString/>, затем я думал, что это может быть маршрутизация, когда я опубликовал вопрос, после того, как ответ был опубликован, я понял, что это был <connectionString/> и обновление базы данных с DbContextName. После получения правильных

<add name="DbContextName" connectionString="DataSource=ServerName;
    Integrated Security=False;Initial Catalog=DbName;User Id=username;
        Password=password;Encrypt=False;Packet Size=4096;" providerName=
            "System.Data.SqlClient" />

Затем в консоли диспетчера пакетов:

update-database -ConnectionStringName "DbContextName"

Затем publi sh и все работает хорошо.

...