我需要以编程方式确定是否安装了.NET 3.5.我觉得这很容易:
<% Response.Write(Environment.Version.ToString()); %>
Run Code Online (Sandbox Code Playgroud)
返回"2.0.50727.1434"所以没有这样的运气......
在我的研究中,我有一些相当模糊的注册表项,我可以看一下,但我不确定这是否是要走的路.有没有人有什么建议?
我目前正在构建一个小型CRUD应用程序.他们的数据库非常混乱,并且在接下来的6个月到一年的时间里会经常变化.你会为我的数据层推荐什么:
1)ORM(如果是,哪一个?)
2)Linq2Sql
3)存储过程
4)参数化查询
我真的需要一个足够动态的解决方案(既快又简单),我可以替换表并经常添加/删除列.
注意:我对ORM没有太多经验(只有一点SubSonic),并且通常倾向于使用存储过程,所以这可能是最佳选择.我很想学习Ling2Sql或NHibernate,如果要么允许我上面描述的情况.
我在两个单独的表中有一个地址列表,略微偏离我需要能够匹配.例如,可以通过多种方式输入相同的地址:
虽然简单,但您可以想象更复杂的场景中的情况.我正在尝试开发一种能够将上述地址作为关键字匹配的简单算法.
例如.关键可能是"11TEST" - 110的前两个,测试的前两个和街道变体的前两个.完整匹配键也将包括前5个邮政编码,因此在上面的示例中,完整键可能看起来像"11TEST44680".
我正在寻找有效算法或资源的想法,我可以在开发时考虑这些因素.任何想法都可以是伪代码或您选择的语言.
我们只关心美国的地址.事实上,我们只查看来自俄亥俄州和密歇根州的250个邮政编码的地址.我们也无法访问任何邮政软件,尽管对于具有成本效益的解决方案的想法是开放的(它基本上是一次性使用).请注意,这是来自政府来源的初始数据转储,因此有关用户如何清理它的建议对我构建应用程序很有帮助,但我希望能够将地址匹配为最佳状态.尽可能好.
我们正在努力在Sitecore 6.2站点中的工作流上实现一些自定义代码.我们的工作流程目前如下所示:

我们的目标很简单:在"等待批准"步骤中,通过电子邮件向提交者报告其内容修订是否已获批准或拒绝,以及审阅者所做的评论.为此,我们在"批准"和"拒绝"步骤下添加一个操作,如下所示:

我们在尝试编写此代码时遇到两个大问题
有关更多上下文,这是我到目前为止的代码:
var contentItem = args.DataItem;
var contentDatabase = contentItem.Database;
var contentWorkflow = contentDatabase.WorkflowProvider.GetWorkflow(contentItem);
var contentHistory = contentWorkflow.GetHistory(contentItem);
//Get the workflow history so that we can email the last person in that chain.
if (contentHistory.Length > 0)
{
//contentWorkflow.GetCommands
var status = contentWorkflow.GetState(contentHistory[contentHistory.Length - 1].NewState);
//submitting user (string)
string lastUser = contentHistory[contentHistory.Length - 1].User;
//approve/reject comments
var message = contentHistory[contentHistory.Length - 1].Text;
//sitecore user (so we can get email address)
var submittingUser = sc.Security.Accounts.User.FromName(lastUser, false); …Run Code Online (Sandbox Code Playgroud) 具体来说,我们正在尝试将我们的telerik控件升级到最新版本.不幸的是,旧的DLL已经很老了,很多控制属性都发生了很大的变化,所以我们决定只升级给我们带来问题的telerik控件(RadEditor控件).
所以bin看起来像这样:
RadChart.Net2.dll
RadEditor.Net2.dll (we want to get rid on only this one)
RadGrid.Net2.dll
RadInput.Net2.dll
RadPanelbar.Net2.d
RadSpell.NET2.dll
RadTabStrip.Net2.d
RadToolbar.Net2.dl
RadTreeView.Net2.d
RadUpload.Net2.dll
RadWindow.Net2.dll
Telerik.Web.UI.dll (this is the new DLL)
Run Code Online (Sandbox Code Playgroud)
问题是从旧DLL到新DLL(Telerik.Web.UI)的所有命名空间和类都是相同的.
这是我得到的具体错误:
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0433: The type 'Telerik.Charting.ChartSeries' exists in both 'c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\c6516654\63e1c826\assembly\dl3\9aa96a66\00ba04b3_fd85c701\RadChart.Net2.DLL' and 'c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\c6516654\63e1c826\assembly\dl3\8fdb0e6c\001aa55c_c4f9c901\Telerik.Web.UI.DLL'
Run Code Online (Sandbox Code Playgroud)
我已经考虑过GAC新的DLL,但我不确定这会对情况有所帮助.任何帮助将不胜感激.
我在iOS设备上播放正确编码的视频时遇到了问题.以下是一些背景/信息:
通过Zencoder的支持人员的一些调查和一些帮助,我们认为问题可能与标题有关(顶部是视频不起作用,底部工作正常):
$ curl -I http://fraternity.computol.com/~/media/Fraternity/mp4/leadership_zen.mp4
HTTP/1.1 200 OK
Date: Wed, 29 Jun 2011 16:30:29 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Content-Disposition: attachment; filename="leadership_zen.mp4"
Transfer-Encoding: chunked
Set-Cookie: fraternity#sc_wede=1; path=/
Cache-Control: public, max-age=604800
Expires: Wed, 06 Jul 2011 16:30:29 GMT
Last-Modified: Wed, 29 Jun 2011 16:28:26 GMT
ETag: 9cba9593424645bfb372a01bfe522f97
Content-Type: application/octet-stream
$ curl -I http://www.rhythmonthevine.org/videos/SHR_ROTV_Dierks_v02.mp4
HTTP/1.1 200 OK
Content-Length: 16091772
Content-Type: video/mpeg
Last-Modified: Thu, 24 Mar 2011 14:05:49 GMT
Accept-Ranges: bytes
ETag: "8374ff932ceacb1:335c"
Server: Microsoft-IIS/6.0 …Run Code Online (Sandbox Code Playgroud) 在我们更新Newtonsoft.Json之后,我们遇到了程序集冲突.我无法理解错误中引用的特定版本来自何处.web.config中没有任何内容指向特定版本.
System.IO.FileLoadException:无法加载文件或程序集"Newtonsoft.Json,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
GAC的两个版本的装配会解决这个问题吗?
我们在Sitecore上运行了5个相对较小的站点.最古老的已经在环境中托管了3年.目前,主数据库和Web数据库大约相当于8 GB - 大小令人惊讶,但它们的大小几乎相同(我希望Web数据库要小得多).同样令人惊讶的是App_Data的大小超过50 GB(MediaCache为15 GB,MediaFiles为37 GB).关于减少光盘上文件的方法的任何想法或建议 - 即使是暂时的?
我有一个"笔记"表.Notes支持一级线程 - 换句话说,您可以回复一个注释,但无法回复另一个回复.所以表格如下所示:
CREATE TABLE [dbo].[Notes] (
[NoteId] [uniqueidentifier] ROWGUIDCOL NOT NULL DEFAULT (newid())
CONSTRAINT [PK__Notes]
PRIMARY KEY ([NoteId]),
[ParentNoteId] UNIQUEIDENTIFIER NULL,
[NoteText] NVARCHAR(MAX) NOT NULL,
[NoteDate] DATETIME NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
所以我使用Subsonic活动记录来获取所有"父"笔记:
var allNotes = (from n in Note.All()
where n.ParentNoteId == null
orderby n.NoteDate descending
select n)
.Skip((pageIndex - 1) * pageSize).Take(pageSize);
Run Code Online (Sandbox Code Playgroud)
接下来,我只循环遍历IQueryable并填写注释Guids的通用列表:
List<Guid> noteList = new List<Guid>();
foreach (var note in allNotes)
{
noteList.Add(note.NoteId);
}
Run Code Online (Sandbox Code Playgroud)
最后,我试图构建一个查询来获取原始查询中的所有回复:
replies = from n in Note.All()
where n.ParentNoteId != null && noteList.Contains(n.ParentNoteId.Value) …Run Code Online (Sandbox Code Playgroud)