我有一个C#
使用MVC
和数据库创建的网络系统MySQL
。当我从我的计算机(本地主机)尝试它时,我没有问题,但是当我从托管它的生产网站尝试它时,第一次总是需要一段时间,我要做的就是按下键F5
,然后它在那里加载页面正常,然后如果我想重新打开页面,它加载正常。
首次加载页面时总是会出现此问题。我知道问题不在于数据库,因为当页面顶部加载时,它不会对数据库进行任何调用。
我推断认为问题可能是jQuery
我在项目中的库或的库Bootstrap
,但我觉得很难,因为从我的计算机上它工作正常,另一件事我开始认为它可能是缓存或其他东西以启用来自生产服务器的 cookie。
实际上,检测延迟问题的原因是相当困难的。如果有人知道任何事情,我将不胜感激。
只是为了排除原因,我一直在想我的问题的原因之一可能是我在我的项目中定义的 InitializeSimpleMembershipAttribute 类(已经在 MVC 中,生成了这个类),它位于过滤器文件夹中?我修改了它,注释了我认为对我不起作用的代码,所以我就这样离开了:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class InitializeSimpleMembershipAttribute : ActionFilterAttribute
{
private static SimpleMembershipInitializer _initializer;
private static object _initializerLock = new object();
private static bool _isInitialized;
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Ensure ASP.NET Simple Membership is initialized only once per app start
LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock);
}
private class SimpleMembershipInitializer
{
//public SimpleMembershipInitializer()
//{
// Database.SetInitializer<UsersContext>(null);
//}
}
}
由于不同的原因,可能会发生此行为。我将列举我检查过的事情的列表(因为同样的事情发生在我身上)以确定问题。
web.config
中检查该模式是否未启用debug
<compilation debug="false">
Release
Propiedades
在Package/Publish Web
活动部分中CheckBox
显示,这样不会生成包含模式符号Exclude generated debug symbols
的文件。.pdb
debug
Pool
应启用为Always Running
. 您可以在IIS Manager
>>Grupo de aplicaciones
>> 右键单击您的Pool
然后在Configuración Avanzada
>>Modo de inicio
>>Siempre corriendo
(AlwaysRunning
)中进行配置我希望在你的情况下,这些信息是有用的。
您可能需要在 IIS 中进行一些配置以启用“应用程序初始化模块”,
https://www.iis.net/downloads/microsoft/application-initialization