Определите абсолютный, полностью определенный URL сайта в asp.net

Вот некоторая информация из Блог пользователя Scott Gu's , опубликованный Jeff о том, что на самом деле происходит:

Для тех, кто видит это исключение :

«Модель, поддерживающая контекст« Производство », изменилась с момента создания базы данных. Либо вручную удалите / обновите базу данных, либо вызовите Database.SetInitializer с экземпляром IDatabaseInitializer

Вот что происходит и что с ним делать:

Когда модель сначала создается, мы запускаем DatabaseInitializer, чтобы делать что-то вроде создания базы данных, если ее нет или добавить данные семени. По умолчанию DatabaseInitializer пытается сравнить схему базы данных, необходимую для использования модели, с хешем схемы, хранящейся в таблице EdmMetadata, созданной с помощью базы данных (когда Code First является тем, который создает базу данных). Существующие базы данных не будут иметь таблицу EdmMetadata и поэтому не будут иметь хэш ... и реализация сегодня будет бросать, если эта таблица отсутствует. Мы будем работать над изменением этого поведения, прежде чем мы отправим версию fial, так как это значение по умолчанию. До тех пор существующие базы данных обычно не нуждаются в инициализаторе базы данных, поэтому его можно отключить для вашего типа контекста, вызвав:

Database.SetInitializer(null);

Jeff

blockquote>

7
задан David Rawson 8 April 2017 в 23:10
поделиться

6 ответов

В прочтении ответа обеспечил в Блоге Rick Strahl, я нашел то, в чем я действительно нуждался, было довольно просто. Сначала необходимо определить относительный путь (который для меня был легкой частью), и передайте это в функцию, определяемую ниже:

VB.NET

Public Shared Function GetFullyQualifiedURL(ByVal s as string) As String
   Dim Result as URI = New URI(HttpContext.Current.Request.Url, s)
   Return Result.ToString
End Function

C#

public static string GetFullyQualifiedURL(string s) {
    Uri Result = new Uri(HttpContext.Current.Request.Url, s);
    return Result.ToString();
}
12
ответ дан 6 December 2019 в 06:52
поделиться

Существует некоторое превосходное обсуждение и идеи о блоге Rick Strahl

Править: Я должен добавить, что идеи работают с или без допустимого HttpContext.

EDIT2: вот определенный комментарий / код того сообщения, которое отвечает на вопрос

5
ответ дан 6 December 2019 в 06:52
поделиться

Вы попробовали AppSettings. RootUrl, который обычно настраивается в web.config файле?

0
ответ дан 6 December 2019 в 06:52
поделиться

Вы говорите о для использования в качестве ссылок?

если так, затем выполнение этого <a href='/'>goes to root</a> возьмет Вас в файл по умолчанию веб-корня.

Теперь, для стороны клиента, выполнения, передавая "~ /" к Управлению:: метод ResolveUrl предоставит Вам, что Вы ищете. (http://msdn.microsoft.com/en-us/library/system.web.ui.control.resolveurl.aspx)

0
ответ дан 6 December 2019 в 06:52
поделиться

У меня нет способа проверить это в данный момент, но иметь Вас попробованный "Запрос. URL. AbsoluteUri" от другой машины?

Мне приходит в голову, что насколько Ваша машина обеспокоена, что это - браузер, запрашивает от localhost.

Я мог быть неправым, хотя, но я думаю, запрос относительно браузера а не веб-сервера.

0
ответ дан 6 December 2019 в 06:52
поделиться

Нашел этот код здесь :

string appPath = null;

appPath = string.Format("{0}://{1}{2}{3}",
    Request.Url.Scheme,
    Request.Url.Host,
    Request.Url.Port == 80 ? string.Empty : ":" + Request.Url.Port,
    Request.ApplicationPath);
2
ответ дан 6 December 2019 в 06:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: