我目前正在运行Tridion 2011 SP1.
我正在编写一些在发布页面时运行的代码.它遍历页面中的每个组件模板,获取组件并将各种字段写出到XML文档.对于具有许多组件模板的页面或具有许多字段的组件,此过程可能需要一段时间才能运行.如果进程超过30秒,我会收到错误消息
The operation performed by thread "EventSystem0" timed out.
Component: Tridion.ContentManager
Errorcode: 0
User: NT AUTHORITY\NETWORK SERVICE
Run Code Online (Sandbox Code Playgroud)
接着是另一个
Thread was being aborted.
Component: Tridion.ContentManager
Errorcode: 0
User: NT AUTHORITY\NETWORK SERVICE
StackTrace Information Details:
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Delegate.DynamicInvokeImpl(Object[] args)
at Tridion.ContentManager.Extensibility.EventSubscription.DeliverEvent(IEnumerable`1 subjects, TcmEventArgs eventArgs, EventPhases phase)
Run Code Online (Sandbox Code Playgroud)
我相信我有三个选择.
1.增加超时
这似乎是一个懒惰的解决方案,只隐藏了这个问题.无法保证超时问题不会再次发生.我也不确定超时值的存储位置(我尝试在Tridion Content Manager.msc管理单元中更改一些值,但没有运气).
2.在实际的事件处理程序例程中做得少,并且有一个单独的进程完成所有艰苦的工作
这似乎也不是正确的解决方案.我真的想将所有事件处理程序代码保存在一个地方.对于我们的5.3安装,我们有一个这样的解决方案,这是一个维护的噩梦(这是一个非常古老和写得不好).
3.让我的代码更有效率
我的组件有很多字段,如果它们是ComponentLinks,我的代码必须深入研究每个字段.我想因为Tridion对象的属性是延迟加载的,所以我访问的每个属性都会调用API /数据库.检索在访问多个属性时很快堆积的属性平均需要0.2秒.如果有一种方法可以在一次调用中检索所有属性,那么这将非常有用.
有任何想法吗?
我正在运行Tridion 2011 SP1,并在我的cd_core.xxxx.xx.xx.log文件中收到以下警告.
2012-10-17 12:37:50,298 WARN FSTaxonomyDAO - TaxonomyDAO is set to File System, which is not supported. Check your bindings settings and/or license file.
Run Code Online (Sandbox Code Playgroud)
我从cd_deployer_conf.xml中删除了以下元素
<Module Type="TaxonomyDeploy" Class="com.tridion.deployer.modules.TaxonomyDeploy"/>
Run Code Online (Sandbox Code Playgroud)
但我仍然收到警告.
我认为这个问题导致我的许多多媒体组件在发布时失败.如果修复这些警告的原因没有帮助,那么我至少会缩小它.
编辑
我忘了提到我使用文件系统作为内容数据存储
我有一个链接到数千个项目的组件(在这种情况下,所有其他项目都是组件).是否有一种简单/快速的方法来删除组件并删除所有链接?
我目前正在使用Tridion 5.3并通过TOM API以编程方式执行此操作.对于与10000个其他组件链接的一个组件,这需要大约7个小时.我还有更多要去的地方!
我正在从R5.3迁移到2011年,因此可以使用任一项.
我使用的代码如下......
static void Main(string[] args)
{
var componentIDToRemove = "tcm:4-123456";
var linkedComponentIDs = System.IO.File.ReadAllLines("C:\\...\\whereused.txt"); // ids of the components linked to tcm:4-123456
TDS.TDSE tdse = new TDS.TDSE();
foreach (var linkedComponentID in linkedComponentIDs)
{
TDS.Component component = null;
TDS.ItemFieldValues itemFieldValues = null;
try
{
component = (TDS.Component)tdse.GetObject(linkedComponentID, TDSDefines.EnumOpenMode.OpenModeView);
itemFieldValues = component.MetadataFields["myfield"].value;
var itemFieldValuesCount = itemFieldValues.Count;
for (var i = itemFieldValuesCount; i > 0; i--)
{
if (itemFieldValues[i].ID == componentIDToRemove)
{
component.CheckOut();
itemFieldValues.Remove(i);
component.Save();
component.CheckIn();
}
} …Run Code Online (Sandbox Code Playgroud) 我最近安装了 Visual Studio 15.3.1 社区版(尽管我怀疑这会影响所有版本)。在进行诸如
.sql文件选项卡Visual Studio 将冻结或挂起几秒钟或永久。它有时会在标题栏中显示“(无响应)”,但并非总是如此。这真是令人沮丧。
我正在使用Visual Studio 2017和.NET Core 2.x. 我已经建立了两个项目。第一个是后端API(https:// localhost:51637)。第二个是前端网站(https:// localhost:54146)。前端网站调用后端API。它们都在我的计算机上本地运行。
问题是,当前端尝试向API发送请求时,我得到了这个证据
info: Microsoft.AspNetCore.Server.Kestrel[20]
Connection id "0HLKNTHFLCEA9" request processing ended abnormally.
System.IO.IOException: The decryption operation failed, see inner exception. ---> System.ComponentModel.Win32Exception: An unknown error occurred while processing the certificate
--- End of inner exception stack trace ---
at System.Net.Security.SslStreamInternal.ReadAsyncInternal[TReadAdapter](TReadAdapter adapter, Memory`1 buffer)
at Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal.AdaptedPipeline.ReadInputAsync(Stream stream)
at System.IO.Pipelines.PipeCompletion.ThrowLatchedException()
at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result)
at System.IO.Pipelines.Pipe.ReadAsync(CancellationToken token)
at System.IO.Pipelines.Pipe.DefaultPipeReader.ReadAsync(CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1Connection.BeginRead(ValueTask`1& awaitable)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequestsAsync[TContext](IHttpApplication`1 application)
Run Code Online (Sandbox Code Playgroud) 在Visual Studio中使用Package Manage Console,当我在Company.Project1(.NET Core 1.1)上运行"Add-Migration MyMigrationName"时出现错误
Could not find assembly 'C:\path\to\my\solution\Company.Project2\.\bin\Debug\netcoreapp1.1\Company.Project1.dll'.
Run Code Online (Sandbox Code Playgroud) 我很头疼,我的问题不是纯编程问题,我不知道它是否属于Stackoverflow问题.或者它属于其他地方,如SuperUser?
现行制度:
目前,我们使用的是Windows XP + Access 2003,我们有一个用Access 2003 MDB格式编写的数据库系统,它分为2个MDB文件,一个用于数据库数据,一个用于前端.
幸运的是,前端不包含数据访问页面.它包含:
表单,报表,查询,宏,VBA模块.
我们没有使用任何第三方对象,所有表单/报表只使用默认的Microsoft控件,所有VBA只使用默认的Microsoft库.
我的头痛背景:
由于我公司计算机支持部门的政策,迫使我们所有的计算机工作站从Windows XP + Office 2003升级到Windows 7 + Office 2010,他们强迫我们升级,因为他们不支持旧系统.
我的头痛:
现在我研究如果我的系统将是Windows 7 + Access 2010,我该怎么办.我已经学习了一些谷歌的东西.这是我到目前为止的总结:
解决方案1:将前端MDB转换为ACCDB,保留后端MDB.
由于后端数据很重要,我不想冒险进行转换.我非常担心前端汇聚会安全轻松吗?我可以将ACCDB链接到MDB(密码保护)吗?
解决方案2:将2个MDB转换为ACCDB.
它容易和数据安全吗?我担心它会导致我的数据崩溃.
解决方案3:保持2个MDB保持MDB
我从微软网站上看到,97 MDB无法改变设计,确定我的系统是2003 MDB,但我对2003 MDB非常怀疑也会有问题.Access 2010引入了许多新对象,另一方面,也许有些2003对象在2010年不再工作.我从谷歌读过,有些人无法在MDB中保存表单/报表设计,因为2010年默默添加新对象.
有人会给我建议和分享经验吗?
使用IIS7,是否有办法强制客户端浏览器下载文件而不是尝试在浏览器中显示它?在我的情况下,我想强制浏览器下载所有MP4视频文件.
我有一个使用Javascript构建的对象数组,我需要使用VBScript读取它(如下例所示).我找不到一种方法来循环我的VbScript代码中的数组作为myArray对象.
这个例子简化了我的问题.我无法更改页面的默认语言.该myArray对象必须使用JavaScript来构建.必须使用内联vbscript输出数组.
<%@ Language="VBScript" %>
<script language="javascript" runat="server">
var myArray = [
{
name: "object 1"
},
{
name: "object 2"
},
{
name: "object 3"
}
];
</script>
<%
Response.Write(myArray) ' [object Object],[object Object],[object Object]
'Response.Write(myArray(0)) ' ERROR
'Response.Write(myArray[0]) ' ERROR
Response.Write(myArray.[0]) ' [object Object]
Response.Write(myArray.[0].name) ' object 1
Response.Write(VarType(myArray)) ' 8
Response.Write(myArray.length) ' 3
Response.Write(VarType(myArray.[0])) ' 8
Response.Write(VarType(myArray.[0].name)) ' 8
Response.Write(TypeName(myArray)) ' JScriptTypeInfo
Response.Write(TypeName(myArray.[0])) ' JScriptTypeInfo
' ERROR
' Type mismatch: 'UBound'
'Response.Write(UBound(myArray))
' …Run Code Online (Sandbox Code Playgroud) 他们要求做什么打印:
F
FE
FED
FEDC
FEDCB
FEDCBA
Run Code Online (Sandbox Code Playgroud)
我能够打印:
F
FF
FFF
FFFF
FFFFF
Run Code Online (Sandbox Code Playgroud)
使用此代码:
int main()
{
int count, count2;
char letterToPrint = 'F';
for (count = 0; count < 5; count++)
{
for (count2 = 0; count2 <= count; count2++)
{
printf("%c", letterToPrint);
}
printf("\n");
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在第二个for循环中添加一些内容来打印前一个字母,然后减少它,还是需要另一个循环?
我有一张桌子,列出了地方的地方(姓名,地址等)的详细信息,我也希望有一个地方的图像.我想知道是否有人知道将图像上传到SQL数据库的简单方法?
使用Tridion Core Service,如何获取文件夹中的所有项目?
tridion ×4
.net-core ×2
api ×1
arrays ×1
asp-classic ×1
asp.net-core ×1
c ×1
download ×1
iis ×1
iis-7 ×1
javascript ×1
jscript ×1
ms-access ×1
sql ×1
t-sql ×1
tridion-2011 ×1
vbscript ×1