Глобальные ASAX - получают имя сервера

Из любви к Богу - используют другой текстовый редактор! Если это - что-то, что требует педаль ножного управления работать с ним обычно, то... хорошо... откровенно говоря, я безмолвен. Существует множество мощных современных текстовых редакторов там, которые не требуют, чтобы Вы запомнили объемы тайных нажатий клавиш или купили необычные аппаратные средства.

Вы знаете, я могу понять и принять много вещей, но педаль ножного управления для простого текстового редактора действительно, где я разграничиваю.

14
задан BWA 29 July 2016 в 10:33
поделиться

5 ответов

You can access the Context through the static HttpContext.Current member.

HttpContext.Current.Request.ServerVariables["SERVER_NAME"];
HttpContext.Current.Request.Url;

Edit, Based on some of your comments I did some additional research

This error is due to a design change in the IIS7 Integrated pipeline that makes the request context unavailable in Application_Start event. When using the Classic mode (the only mode when running on previous versions of IIS), the request context used to be available, even though the Application_Start event has always been intended as a global and request-agnostic event in the application lifetime. Despite this, because ASP.NET applications were always started by the first request to the app, it used to be possible to get to the request context through the static HttpContext.Current field.

So you have two options

  1. Change your application code to not use the request context (recommended).
  2. Move the application to Classic mode (NOT recommended).

http://mvolo.com/iis7-integrated-mode-request-is-not-available-in-this-context-exception-in-applicationstart/

22
ответ дан 1 December 2019 в 06:39
поделиться

Ваше веб-приложение может работать в нескольких разных доменах. Поскольку в событии Application_Start нет текущего запроса, вы не можете знать, в каком домене будет вызываться приложение.

Однако вы можете узнать имя компьютера, используя System.Environment.MachineName .

17
ответ дан 1 December 2019 в 06:39
поделиться

Полагаю, вы используете IIS 7? Поскольку HttpContext доступен в IIS 6.0.

Можете ли вы подумать о заполнении этой информации позже? Первый вызов Application_BeginRequest например?

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

Есть ли у вас вообще доступ к объекту запроса? Если так, я думаю, вы могли бы использовать Request.Url.Authority

Возвращает имя хоста DNS, которое вы ищете.

G

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

Вы пробовали: -

System.Web.HttpContext.Current.Request.ServerVariables["SERVER_NAME"]

Спасибо,

Фил.

-3
ответ дан 1 December 2019 в 06:39
поделиться
Другие вопросы по тегам:

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