我在一个Ubuntu Server 12.04(64位)VM(VirtualBox)上运行Symfony2.主持人是MacBook专业版.出于某种原因,我在开发模式(app_dev.php)中获得了非常长的请求时间.我知道它在开发模式下速度较慢,但每个请求我说5-7秒(有时甚至更慢).在我的Mac上,我在开发模式下获得200ms左右的请求时间.
在Symfony2分析器中查看我的时间线后,我注意到~95%的请求时间是"初始化时间".这是什么?有什么原因可能会这么慢?
此问题仅适用于开发模式下的Symfony2,而不适用于我在VM上运行的任何其他站点,甚至不适用于生产模式下的Symfony2.
我看到了这一点(http://stackoverflow.com/questions/11162429/whats-included-in-the-initialization-time-in-the-symfony2-web-profiler),但它似乎没有回答我的问题.
对于表单身份验证,我在web.config中使用了它(请注意域属性):
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" name=".ASPXAUTH" protection="Validation" path="/" domain=".myserver.dev" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
如何在Mvc 5中为新的ASP.NET Identity Framework配置子域之间的单点登录?
更多信息:
我正在创建一个多租户应用程序.每个客户端都在子域上:
client1.myapp.com
client2.myapp.com
我希望用户能够登录client1.myapp.com然后转到client2.myapp.com并仍然登录.使用表单身份验证很容易.我正在试图弄清楚如何使用新的Identity Framework来实现它.
编辑
这是最终为我工作的代码:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Application",
LoginPath = "/Account/Login",
CookieDomain = ".myapp.com"
});
Run Code Online (Sandbox Code Playgroud) Resharper告诉我这段代码中的'else'是多余的:
if(a)
{
//Do Something
}
else if(b)
{
//Do Something
}
Run Code Online (Sandbox Code Playgroud)
本else似乎并没有多余的,因为else不断b被评估,如果a是真实的.如果b是变量,额外开销很小,但b也可能是表达式.
它是否正确?
我有一个使用repository(userRepo)的方法:
public override Task<IdentityResult> CreateLocalUserAsync(IUser user, string password, CancellationToken cancellationToken)
{
var task = new Task<IdentityResult>(() => {
TUserEntity newUser = new TUserEntity
{
Id = user.Id,
UserName = user.UserName,
Password = password
};
userRepo.Save(newUser).Flush();
return new IdentityResult(true);
}, cancellationToken);
task.Start();
return task;
}
Run Code Online (Sandbox Code Playgroud)
该userRepo对象具有使用的依赖项HttpContext.Current.这两个都是使用ninject解决的InRequestScope.
AccountController在Mvc 5中默认调用上面的方法:
var result = await IdentityManager.Users.CreateLocalUserAsync(user, model.Password);
Run Code Online (Sandbox Code Playgroud)
我尝试将此设置添加到web.config:
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
Run Code Online (Sandbox Code Playgroud)
另外,我肯定使用的是.NET 4.5.这也在我的web.config中:
<httpRuntime targetFramework="4.5" />
Run Code Online (Sandbox Code Playgroud)
HttpContext在我开始执行任务之前无法获取信息,因为任务中的依赖userRepo项正在使用信息,并且使用Ninject解析了这两个对象.
我怎样才能确保HttpContext.Current不会为空?
偶尔我发现自己处于这样一种情况,即只有满足某个条件才需要解析服务.例如,用户可能选择发送电子邮件或短信通知.我想懒得加载电子邮件或短信服务取决于用户选择的内容,这样我就不必加载它们并浪费资源(例如,如果有用户的10个选项......? ).
我遇到的问题是在我的引导程序代码之外使用容器(我不希望我的代码依赖于容器).我似乎找不到使用容器进行延迟加载服务的方法(除非我手动创建所需的服务并手动完成所有DI).这种情况是规则可以弯曲还是有更好的方法?
我有两个具有一对一单向关系的实体:
class Foo {
...
/**
* @OneToOne(targetEntity="Bar")
*/
private $bar;
...
}
class Bar {
...
}
Run Code Online (Sandbox Code Playgroud)
当我尝试删除Bar实体时,我收到此错误:
完整性约束违规:1451无法删除或更新父行:外键约束失败
如何在不失去删除Bar实体的能力的情况下保持单向关系?
我正在尝试以下操作,但没有运气试图在子域之间保持会话:
MyApp::Application.config.session_store :cookie_store, key: '_myapp_session', :domain => :all, :tld_length => 2
MyApp::Application.config.session_store :cookie_store, key: '_myapp_session', :domain => 'myapp.dev'
MyApp::Application.config.session_store :cookie_store, key: '_myapp_session', :domain => '.myapp.dev'
Run Code Online (Sandbox Code Playgroud)
我在Google和SO上找到了所有这些组合.
我看到了一些解释,但它涉及手动设置cookie.如果可能的话,我想坚持配置.
注意:我正在使用设计.我也重新启动了服务器并清除了cookie.
是否有工具从现有类生成php接口?有一个像Netbeans自动getter/setter创建工具但接口的工具会很好.
出于某种原因,$("...").width()在文档就绪后立即返回错误的值.
我看到了这些价值观:
文件准备好后立即:
$(document).ready(function(){
$("li.active a").width() //returns 76 - incorrect
});
$(document).ready(function(){
$(window).load(function(){
$("li.active a").width() //returns 59 - the correct value
});
});
$(document).ready(function(){
setTimeout(function(){
$("li.active a").width() //returns 59 - the correct value
}, 100);
});
Run Code Online (Sandbox Code Playgroud)
我正在获取wordpress菜单项的宽度并调整它们的大小,以便它们始终适合我的响应式设计.没有图像或资产可能导致此更改.
更新 请参阅下面的评论.事实证明,有一种资产,一种嵌入式字体,需要一瞬间加载.
我在同一域上有两个 Web 应用程序(一个 CMS 和一个电子商务平台),我想在它们之间共享会话数据。我可以轻松地进行设置,以便它们都使用相同的会话,但是 $_SESSION 变量中变量名冲突的可能性太大。我以为我可以使用命名会话,但我也无法让它工作:
session_name("WEB_APP_ONE");
session_start();
$webAppOneData = $_SESSION;
session_write_close();
//var_dump($_SESSION) = all of the session data for web app one is still contained in $_SESSION even though I closed the session with session_write_close()
session_name("WEB_APP_TWO");
session_start();
$_SESSION['WEB_APP_ONE'] = $webAppOneData;
//var_dump($_SESSION) = all of the session data for web app one is still here
Run Code Online (Sandbox Code Playgroud)
我不确定这是否可行,但我想知道是否可行!
注意:我所了解的实际用例是能够在 CMS 中显示访客购物车中有多少产品。购物车数据存储在电子商务平台的会话中,但我需要从CMS的标题中显示。我希望 CMS 和购物车之间能够无缝集成。
c# ×3
php ×2
.net ×1
async-await ×1
devise ×1
doctrine ×1
foreign-keys ×1
html ×1
httpcontext ×1
interface ×1
jquery ×1
lazy-loading ×1
ninject ×1
optimization ×1
performance ×1
resharper ×1
session ×1
subdomain ×1
symfony ×1
ubuntu ×1
virtualbox ×1
wordpress ×1