All
У меня есть ASP.NET (C #), который работает должным образом со встроенным отладчиком / веб-сервером. Однако, когда я перемещаю его на сервер IIS, создается впечатление, что объект кэша не устанавливается. Кто-нибудь может предложить какую-либо помощь?
Вот класс, который устанавливает кэш и последующий файл cookie.
class globals
{
public NameValueCollection values;
private static string m_visitNumber ="";
public globals()
{
string userName = HttpContext.Current.Request.Cookies["PatientDischargeSummary"].Value;
values = HttpContext.Current.Cache[userName] as NameValueCollection;
}
public globals(NameValueCollection form)
{
// Copy the form values.
values = new NameValueCollection();
values.Add("txtCR", form["txtCR"]);
values.Add("txtName", form["txtName"]);
// Add the values to the cache.
//HttpContext.Current.Cache.Insert(form["txtUserName"], values, null, System.Web.Caching.Cache.NoSlidingExpiration, TimeSpan.FromMinutes(5));
HttpRuntime.Cache.Insert(form["txtUserName"], values, null, DateTime.Now.AddMinutes(5), System.Web.Caching.Cache.NoSlidingExpiration);
//HttpContext.Current.Cache.Insert(form["txtUserName"], values, null, DateTime.Now.AddMinutes(5), System.Web.Caching.Cache.NoSlidingExpiration);
// Add the username to the cookies.
HttpCookie cookie = new HttpCookie("PatientDischargeSummary", form["txtUserName"]);
cookie.Expires = DateTime.Now.AddMinutes(30);
cookie.HttpOnly = true;
HttpContext.Current.Response.Cookies.Add(cookie);
}
Пример использования мной кэша:
globals pcs;</p>
<pre><code> protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
pcs = new globals();
lblActiveEditor.Text = pcs.values["txtName"];
}
}
Создайте следующую ошибку в IIS:
[NullReferenceException: ссылка на объект не установлена для экземпляра объекта.]
navigationtest.Demographics.Page_Load (Отправитель объекта, EventArgs e) в Demographics.ascx.cs: 23
System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Объект o, Объект t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Отправитель объекта, EventArgs e) +34
System.Web.UI.Control.OnLoad (EventArgs e) +99
System.Web.UI.Control.LoadRecursive () +47
System.Web.UI.Control.LoadRecursive () +131
System.Web.UI.Control.LoadRecursive () +131
System.Web.UI.Page.ProcessRequestMain (логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint) + 1061
Есть мысли?