我试图在Sitecore中以编程方式发布.出版工作正常.但以编程方式执行此操作并不会清除sitecore缓存.以编程方式清除缓存的最佳方法是什么?
我正在尝试使用暂存模块附带的Web服务.但是我收到了一个错误的请求异常(异常:远程服务器返回了一个意外的响应:(400)Bad Request.).我试图在客户端配置文件上增加服务receivetimeout和sendtimeout,但这并没有解决问题.任何指针都会非常感激?
我使用以下代码:
CacheClearService.StagingWebServiceSoapClient client = new CacheClearService.StagingWebServiceSoapClient();
CacheClearService.StagingCredentials credentials = new CacheClearService.StagingCredentials();
credentials.Username = "sitecore\adminuser";
credentials.Password = "***********";
credentials.isEncrypted = false;
bool s = client.ClearCache(true, dt, credentials);
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码进行发布.
Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Database web = Sitecore.Configuration.Factory.GetDatabase("web");
string userName = "default\adminuser";
Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(userName, true);
user.RuntimeSettings.IsAdministrator = true;
using (new Sitecore.Security.Accounts.UserSwitcher(user))
{
Sitecore.Publishing.PublishOptions options = new Sitecore.Publishing.PublishOptions(master, web,
Sitecore.Publishing.PublishMode.Full, Sitecore.Data.Managers.LanguageManager.DefaultLanguage, DateTime.Now);
options.RootItem = master.Items["/sitecore/content/"];
options.Deep = true;
options.CompareRevisions = true;
options.RepublishAll = true;
options.FromDate = DateTime.Now.AddMonths(-1); …Run Code Online (Sandbox Code Playgroud) 我们在服务器上运行2个不同的环境 - 比如production.mydomain.com和staging.mydomain.com
暂存环境几乎与生产环境相同,只是它通常有几个正在审查的新功能(例如new_user_profile,image_tagging等).这些功能在不同时间由客户单独接受.
将任何单个功能(例如new_user_profile)从分段推送到生产的最佳方法是什么?
我们的设置如下所示,但您也希望听到您使用的替代方案:
我们尝试了以下两种方法,两种方法都不是很好:
我终于开始使用IDE(IntelliJ),并惊讶于它在我上一个项目中节省了多少时间.在我的下一个项目中,我希望保持使用可以节省时间的好工具的趋势.
我正在为一个新项目设置我的开发环境,我想设置我的开发环境,这样我就可以花更多的时间进行编码,减少部署和手动测试的时间.我想使用像Git,Vagrant这样的工具以及所有开发项目,从长远来看,一旦你投入了学习它们就可以节省时间.
我希望能够拥有一个在我的笔记本电脑上运行的开发环境,一个在网络上的临时环境(没有现场网站,一些集成如Facebook很难测试;我还希望几乎完全安装临时环境与生产相同),以及发布的生产环境.
与生产相比,适用于开发和登台环境的细微更改:例如,不希望登台环境能够意外地向实际客户发送电子邮件.
我认为需要在代码中使用不同的域名,这取决于运行代码的环境,或者可能使用模拟API而不是实际的API,也许电子邮件都被转储到测试域名称等
似乎最安全的方法是让代码假设它在开发模式下运行,除非它被告知它正在升级或生产中.
有什么好的技术可以告诉代码它运行的环境是什么?环境变量?常量包含在库中?
人们使用什么构建工具来处理HTML之类的东西,"编译"可能会投入生产或暂存域名,还可能缩小?
我喜欢编辑我的代码并在开发时重新加载我的浏览器 - 也许这是一个我不应该习惯的拐杖,但我想要一个工作流程,这样可以很容易地做到这一点.
也想让它变得困难.我不想意外地将开发模式中的代码部署到生产中.我从未使用CI工具,这是人们使用CI工具的原因,即他们帮助的是什么?当你没有庞大的团队时,他们是否值得使用?
与IntelliJ很好地配合使用的建议特别受到赞赏.
我正在寻找一个更好的git本身暂存文件的描述(除了 Git大提交最佳实践).我不需要将文件存储到较小的提交中,按模式忽略文件等.我正在寻找的是一个仅关于添加文件的教程 - 通过浏览大包(最多100个)"未分级"文件来提高效率并且可能正在编辑它们(如帅哥).
使用管道过滤的命令行技巧
git status -uno --porcelain | gawk '{ print $2 }' | xargs echo | xargs git add
Run Code Online (Sandbox Code Playgroud)
是offtopic.
一句话:我正在寻找"掌握"交互模式和模式的提示
git add
Run Code Online (Sandbox Code Playgroud) 当我运行时git commit,索引中的更改将添加到本地存储库中。
但是,之后索引会发生什么情况呢?一些 GUI 工具,例如 Eclipse EGit 显示索引已清除,但这不是误导吗?提交后,索引的内容是否与本地存储库的内容相同?
我刚刚从使用共享CF托管服务提供商的客户那里继承了一个CF应用程序.我想介绍更好的流程,包括我为他们的审核进行应用更改的阶段.(在过去,他们会上传更改并交叉手指.)
他们的应用程序位于webroot下的文件夹中.我们称之为"/ app".我想创建一个名为"/ appstaging"的兄弟目录,在那里我将发布最新的代码.障碍是托管服务提供商允许您设置自定义标记和映射的路径,但不是每个CF应用程序.现有设置都指向/ app目录,因此如果我需要更改标签,CFC等,我无法在不影响实时应用的情况下测试这些设置.我想要的是CF让我设置每个应用程序标记路径和映射.从我读过的内容来看,CF8让我这样做,但客户正在使用CF7(我正在推动他们尽快升级).与此同时,无论如何都要解决这个问题,或者是否需要顺利进行分期更改?
(我目前正在尝试检测我在application.cfm中使用GetCurrentTemplatePath()的应用程序的方法.想法是任何使用映射引用其他文件的代码都会使用不同的映射.我做得不够好虽然知道这一切是否会全部解决.)
欢迎任何想法或意见.我应该指出,应用程序及其开发环境不是很"现代".没有涉及框架,也没有像用于构建/部署的ant那样的东西.客户的预算非常有限,所以我不打算转换应用程序整个销售,但我确实需要找到便宜的方法来获得一些流程,以保持理智.
当我将我的应用程序推送到暂存环境时,是否会获得不同的主URL?
我继承了其他人在Heroku上构建和部署的应用程序.我想测试当前用户不会遇到的一些重大变化.它在我的本地机器上看起来很好,但该应用程序有一些怪癖,使它无法在我自己的nginx /基于乘客的服务器上运行.所以Heroku就是.
谢谢你的建议.
我的Git目录中有一个文件夹,用于存储程序运行时的信息,我不希望这些信息继续添加到repo中.
目前我只是避免在git gui中选择此文件夹中的文件.这可能非常麻烦,因为它们通常很多.使用gui或命令行执行此操作的最佳方法是什么?
我注意到,将修改后的文件添加到 git 中的暂存区并再次更改文件,然后在没有添加的情况下进行提交后,没有错误也没有警告。工作文件中的最新更改已提交。最初添加到舞台中的内容是否被丢弃了?
$ git init
Initialized empty Git repository in /tmp/test/.git/
/tmp/test (master)
$ git config --global user.name "Your Name"
/tmp/test (master)
$ git config --global user.email "you@example.com"
/tmp/test (master)
$ echo A > my.txt
/tmp/test (master)
$ git add my.txt
/tmp/test (master)
$ git commit -m '1st' my.txt
[master (root-commit) c804a96] 1st
1 file changed, 1 insertion(+)
create mode 100644 my.txt
Run Code Online (Sandbox Code Playgroud)
此时 my.txt 已提交为“A”
/tmp/test (master)
$ echo B >> my.txt
/tmp/test (master)
$ git status
On branch …Run Code Online (Sandbox Code Playgroud) 什么是代码明智的开发和网站的faging之间的区别?
我的意思是开发< - >直播,比直播所有代码都干净/最小化,对吧?
任何信息,现实生活中的"代码"部分示例?
staging ×10
git ×4
deployment ×2
caching ×1
capistrano ×1
clear ×1
coldfusion ×1
egit ×1
git-commit ×1
heroku ×1
live ×1
php ×1
production ×1
ruby ×1
sitecore ×1
tdd ×1
web-services ×1