解决问题的办法: “FileNotFoundException” 与我功能接收机.

我正在研究一种功能上个星期,会将一些事件接收器添加到特定列表实例. (我有点博文在这里该列表接收机).

使用命令行, 我无法安装功能,并没有错误 (但请参阅下面的隐藏错误). 当我试图部署上该网站的功能, MOSS 抱怨"FileNotFoundException" 错误. 此博客条目描述怎么解决的.

这是一个 MOSS 表明我在 web 浏览器中的错误:

功能 ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ 不安装,因为加载的事件接收器大会"xyzzyFeatureReceiver_0" 失败: System.IO.FileNotFoundException: 未能加载文件或程序集 xyzzyFeatureReceiver_0’ 或一个依赖项. 系统无法找到指定的文件.
文件名称: ' xyzzyFeatureReceiver_0’
在 System.Reflection.Assembly.nLoad(进行校验文件名, 字符串代码库, 证据 assemblySecurity, 大会 locationHint, StackCrawlMark& stackMark, 布尔 throwOnFileNotFound, 布尔 forIntrospection)
在 System.Reflection.Assembly.InternalLoad(进行校验 assemblyRef, 证据 assemblySecurity, StackCrawlMark& stackMark, 布尔 forIntrospection)
在 System.Reflection.Assembly.InternalLoad(字符串 assemblyString, 证据 assemblySecurity, StackCrawlMark& stackMark, 布尔 forIntrospection)
在 System.Reflection.Assembly.Load(字符串 assemblyString)
在 Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
警告: 程序集绑定日志记录打开关闭.
要启用程序集绑定失败日志记录, 设置注册表值 [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD 值) 自 1.
请注意: 有一些与程序集绑定失败日志记录相关联的性能.
若要关闭此功能, 删除注册表值 [HKLMSoftwareMicrosoftFusion!EnableLog].

与 Windows SharePoint 服务问题的疑难解答.

我知道如何去故意导致该错误: 不在 gac 中安装程序集. 但, 它是在 gac 中. 我通常将程序集安装到 gac 中通过将它们拖入 c:\使用 windows 资源管理器的 windowsassembly 文件夹. 我从来 100% 舒适这样做,因为我总是以为那 gacutil 存在的原因 … 所以我试过了. 它没有区别.

互联网中搜索的结果,并找到这篇帖子: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

海报碰巧使用同一根位的代码 (从内部 WSS 书从该列表中) 所以这是一个充满希望的迹象. 不过, 装饰与大会的建议 [程序集: ] 指令对我没有意义. 不管怎样,我还是把它尝试,右. 它没有区别.

然后我注意到我的类定义是不公开. 我将它公开并无差异.

下一步, 我去了启用"程序集绑定失败日志的麻烦" (提供的帮助和最准确的说明) 这是在哪里,事情开始变得有趣. 该日志显示我运行时到处搜索,该服务器上为我的程序集. 它甚至似乎在寻找它在我的药柜. 但 … 它不会在 GAC 中搜索它.

我穿上我冬季夹克和去再次搜索互联网,发现有人也有这问题. 在这个帖子中的冗长讨论彼得斯掉到什么和我找不到解决方案.

我将我的程序集移动到日志声称它搜索并多一点进步的地方之一. 一个新的错误,在浏览器中尝试激活该功能时我得到现在工作:

未能从程序集"xyzzyFeatureReceiver_0"创建功能接收器对象, 键入"Conchango.xyzzyFeatureReceiver" 为功能 b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: 值不能为空.
参数名称: 类型
在 System.Activator.CreateInstance(类型类型, 布尔非公开)
在 System.Activator.CreateInstance(类型类型)
在 Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

与 Windows SharePoint 服务问题的疑难解答.

一个最后一次去互联网的时间!

这一次找出, 不出所料, 苔藓发出此错误,因为程序集不是 GAC 中.

我想要得到的东西正从这并尝试感到有点骄傲的了 Fugitive MSIL 程序集, 但它不工作. 我只是平原恼火. 我发现自己喃喃自语"鸡还是先有蛋" 根据我的呼吸.

我最后决定平底船. 我创建一个完全新的项目和复制/粘贴到这个新项目从 incredible-cloaked-from-the-GAC-assembly 非工作项目在代码. (我寻找称为"隐藏从程序集绑定如果安装到 GAC 中像一个生成标志" 但找不到一个).

安装功能,并将其激活, … 它的工作原理! 所以, 所有这一切之后, 我基本上已经到 ' 重新启动’ 我的项目. 这是为什么我讨厌的计算机的另一个原因.

我确实学到一些有用的这. 以前安装过整天都使用 stsadm 命令行功能和已使用"-力" 出于习惯选项. 因为某些原因, 我没有使用-force 选项,当你安装了新的项目. 这一次, 我做的其实, 真正忘了将这个新项目的程序集复制到 gac 中. 结果, 我收到了"FielNotFoundException" 错误. 这一次, 得从 stsadm, 没有,当我试着激活通过 web 浏览器功能. 所以, -力事实上是扮演两个角色. 它允许您重新安装现有的功能. 它还允许您将不能工作在运行时通过抑制错误越野功能安装. 它可能表示尽可能帮助地方但永远不会注意到了它.

</结束>

Technorati 标签: ,

周日搞笑: 返回页首 10 方法来骚扰你的妻子

  1. 当你知道已经不止是在冰箱里够买西兰花.
  2. 去跑步. 冷静下来. 脱掉干净的枕套和替换 t 恤. 盖上干净的枕套.
  3. 开车的时候, 问问我们是否应该去错了一条单行道.
  4. 对于 15 年, 每个星期天,你妻子建议去博物馆, 上周日的博物馆是开放的表示惊讶.
  5. 对于 15 年, 偶尔在周日建议去当地的书店. 表示惊讶,也不开放,周日的 (多谢 蓝色的法律!).
  6. 使用 20 要点要做 3 轮到点.
  7. 在秋天午后清凉, 走进房间,打开空调. 抱怨,真冷. 当妻子说, "然后为什么做您打开的, 傻" 和起床要将它关闭, 抓住她在沙发上温暖的位置. 如果她还没有意识到你的积分没有它直到很久以后.
  8. 开放美味的白色长鳍金枪鱼罐头,并直接从可以把它吃掉, 躺在床上, 在晚上.
  9. 走进厨房,妻子吃晚饭的时候, 餐具抽屉打开,将餐具推,直到妻子尖叫, "什么你找!"
  10. 在接获的新名片, 偷偷地将它们放在家里所有: 在床下, 枕头例, 杯咖啡的杯子里面, 她的钱包, 在上衣口袋里, 车手套车厢, 餐厅 — 任何你能想到的地方.
  11. 你的妻子写博客条目.
  12. 醒来.
  13. 在纽约城的在街上行走时, 为"硬警惕" 地面上的对象. 铭记你妻子的特殊的恐惧, 到达要挑一个了,问问, "嗯, 我不知道那就是?" (准备好为妻子身上摔你好像她是一个特工保护总统从一名狙击手或你会发现自己平躺在你的背在人行道上).
  14. 开车两次围着停车场寻找空间. 你知道你已经真正打薪酬污垢的时候你在后座的儿子大喊, "哦不! 他在做它 再次!"
  15. 写"顶 10" 别有列表 10 项目.

===

奖金的妻子笑话:

两个男同事一起出去吃午饭. 其中之一告诉对方, "我让松那天晚上的令人尴尬的嘴。"

"一时说溜了? 什么?"

"好吧, 当我们完成了吃, 女服务员前来,问如何我们喜欢我们的饭菜. 我的意思说, ' 我爱鸡胸肉’ 但却说 '我爱你的乳房'. 所以窘了。"

"啊," 他的同事回答. "我有同样的事情发生在我身上这个周末和我的妻子. 我们正在吃的早餐,本来想请她转达黄油, 但相反我尖叫着她, ' 你毁了我的生活!’"

</结束>

Technorati 标签:

事件 ID 1023: “Windows 无法加载 DLL MSSCNTRS 的可扩展计数器”

更新 (04/08/08): 我似乎已经解决了这个问题. 从命令行, 我跑"c:\windowssystem32lodctr /R" 按条目谈论安装问题,那似乎解决了它对我来说.

已经注意到最近, 我的桌面/服务器风扇永远不会关闭. 我知道它用来关闭. 我花了点时间检查出来注意 VMware 进程运行一致 20% 在一个 CPU 的利用率. 我检查事件日志,看到这些发生数十次每分钟应用程序日志中的错误:

Windows 不能加载可扩展计数器 DLL UGatherer, 数据节中的第一个 DWORD 是 Windows 错误代码.

Windows 不能加载可扩展计数器 DLL UGTHRSVC, 数据节中的第一个 DWORD 是 Windows 错误代码.

Windows 无法加载 DLL MSSCNTRS 的可扩展计数器, 数据节中的第一个 DWORD 是 Windows 错误代码.

如果我深入的那些消息之一详细信息, 我得到这:

源: Perflib

类型: 错误

类别: 无

事件 ID 1023

做了一些研究和一些迹象表明,这可能是在进入 Dll 问题方面的权限问题. 把玩了一下那东西,但不是能影响事情以积极的方式,所以我放弃了,.

VMware 把我困扰了有关执行相当一段时间的更新, 所以我草草记下我已经安装的版本 (很显然"1.0.1 生成 29996") 并更新. 这把我升级到 v1.04. 不幸的是, 它未解决问题.

我可以停止疯狂的去我的应用程序日志,如果关闭了名为"VMware 授权服务"的服务的消息数. 这阻止我使用 VMware 软件, 所以 … 不是很好的选择.

主机操作系统是 Windows XP 64 位.

我不认为这种情况总是发生, 但我不记得任何可能导致了它的特定事件.

这就是为什么我恨的计算机.

</结束>

Technorati 标签:

快速 & 容易: 重命名已上载的文件使用 SharePoint 对象模型通过事件接收器

更新: 这工作,但有很大的局限性,介绍了在评论中. 这可能仍然是有用的一些基本状况.

更新 2: 我当前的项目中, 用户始终上载文件. 结果, 不会遇到一个问题 MS Word 正在运行,并且认为它重命名该文件. 我也遇到一个问题, "文件的修改由其他人" 并解决了这个问题通过一个简单的信号类型标志. 用户需要从其默认值的元数据字段更改为别的东西. Itemupdated() 寻找有效的值实际上执行重命名之前并自那时以来接收器, 我没有任何问题. 您的里程可能会发生变化.

我有一个客户端要求更改上载到以符合特定的命名约定的特定文档库的文件名称. 该 API 并不提供"重命名()" 方法. 相反, 我们使用 "MoveTo(…)". 这里是代码的最少来完成这位:

 公众 重写 无效 ItemAdded(SPItemEventProperties 属性)
        {
            SPFile f = 属性。ListItem.File;

            f.MoveTo(属性。ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

唯一麻烦的地方是"属性。"ListItem.ParentList.RootFolder.Url. MoveTo() 方法需要一个 URL. 那捣碎的字符串点我到我当前的文档库的根文件夹中. 这让我们避免任何硬编码在我事件接收器.

这是一个更有用的版本,做同样的事, 但分配的文件的名称为"标题":

 公众 重写 无效 ItemAdded(SPItemEventProperties 属性)
        {
            DisableEventFiring();

            // 将此项的标题分配给文件本身的名称.
 // 请注意: 这项任务必须发生之前我们修改文件本身.
 // 调用 update() 对 SPFile 似乎要使之无效的属性中
 // 某种意义上.  "标题的更新" 失败之前,更改 (和更新() 电话)
 // 在更改前被移到的文件的名称.
            属性。ListItem["标题"] = 属性。ListItem.File.Name;

            属性。ListItem.Update();

            SPFile f = 属性。ListItem.File;

            // 获取该文件的扩展名.  我们以后需要的.
 字符串 spfileExt = 新增功能 FileInfo(f.Name).扩展;

            // 重命名的文件到列表项 ID 和使用的文件扩展名来保存
 // 它不变的那一部分.
            f.MoveTo(属性。ListItem.ParentList.RootFolder.Url +
                "/" + 属性。ListItem["ID"] + spfileExt);

            // 犯下移动.
            f.Update();

            EnableEventFiring();
        }

论坛讨论: 执行非平凡藓类环境中的最佳做法法规遵从性

研究员, "标记", 潜在有趣的新闻组讨论,重点"建立优秀 SharePoint 治理结构从一开始已启动" 对于 35,000 用户环境.

讨论在这里: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

过去流行的贡献!

</结束>

自定义操作 URL 不会显示为新功能

我还在用手制作我功能 XML 文件,因为它是对我都很新的习惯. 我不想依赖一个前端工具的事情我不懂 (他说,他写道: 使用一个工具,他不明白一个博客条目).

今天, 我正要向网站设置添加自定义操作,但它不会露面. 我安装的功能,看它在网站功能, 但激活时 (无错误) 它只是不会显示在下拉菜单中.

终于意识到我拼错"SharePoint" 在位置属性 <CustomAction> 节点. 这是坏的 elements.xml 文件:

<?xml 版本="1.0" 编码="utf-8" ?>
<元素 xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
 Id="SiteActionsToolbar"
 GroupId="SiteActions"
 位置="Microsoft.Sharepoint.StandardMenu"
 序列="100"
 标题="您好 !!"
 说明="通过功能添加的自定义菜单操作."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction Url="http://www.xyzzy.com"/>

  </CustomAction>
</元素>

良好:

<?xml 版本="1.0" 编码="utf-8" ?>
<元素 xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
 Id="SiteActionsToolBar"
 GroupId="SiteActions"
 位置="Microsoft.SharePoint.StandardMenu"
 序列="100"
 标题="您好 !!"
 说明="通过功能添加的自定义菜单操作."
    >
    <UrlAction Url="http://www.xyzzy.com"/>
  </CustomAction>
</元素>

That one took me a good two hours to figure out 🙂

我感到安慰的事实,在将来某一天, 我能说的信念, "早在一天, 我不得不走上小山雪中三英里 (赤脚!) 若要部署到苔藓的自定义功能. 你的孩子, 你不知道你有多么容易! 下车我的草坪!"

不能等待.

</结束>

Technorati 标签: ,

博客统计

我想有些人可能会感兴趣我的博客统计. 你可以用我作为一个基准来比较你自己.

我在 windows 上活空间运行我的博客. 他们收集统计信息对我来说,我不知道任何办法控制的. 它是好的它走得一样长远, 但它是相当有限的我不能做很多与它的实际分析. 我会爱, 例如, 必须能够生成列表的我最经常命中的职位,但不是能没有,让人望而却步的手动过程. 如果有人知道更好, 请告诉我.

生活的空间状态告诉我: 总点击数天, 自从天零的周和总点击总点击. 它还告诉我什么人做去我的博客 (例如:. 谷歌, MSDN 论坛链接, 等).

在某些方面, "命中" 很明显. 如果你读到这句话现在, 你几乎可以肯定已经注册为单命中.

RSS 是有点让人费解. 在另一只手上, 我整天都查看个别的 RSS 点击. 但, 我还看到 RSS"扫荡". 扫描是当我看到 20 或 30 都在一个或两个的第二个窗口内的 RSS 点击. 我假定这些自动化的东西,像谷歌检查我的网站上, 也许其他人浏览 … 不确定. 他们是肯定某种自动化过程. 我不能告诉, 然而, 我总点击次数的多少自动化和多少的另一边有一个实际的人. 我想至少 100 每一天的点击率都被自动.

到数字!

我 7 月 27 日写道: 我第一次的博客条目, 2007.

我写了大约 60 自那时以来的博客文章, 更多 50 其中直接涉及到 SharePoint.

我开始来跟踪我命中在日常基础上电子表格中的在 9 月底.

每月开始:

第一周: 总点击数
10 月 1,234
11 月 2,162
12 月 3,071
1 月 2008 4,253

总按月

个月 总点击数
10 月 6,620
11 月 11,110
12 月 13,138

高水位标记

类型 总点击数
最好的一天 958
最好一周 4,253
总点击数因为天零 42,438

我很感兴趣其他人’ 统计数据. 如果你愿意分享你的意见, 请不要!

</结束>

Technorati 标签:

星期天的早晨搞笑: “是的, 是的, 是的. 布拉赫, 布拉赫, 等等。”

大约六年前, 我四岁的儿子和我在楼上看 探索频道 "鲨鱼袭人事件" 特别 (可能这一). 他还很年轻,在点和我总是很担心,他可能会看到像这样的节目和他可能如何对待它. 我不想他发展, 例如, 任何 特殊的恐惧 水的或 乱说什么不恰当 对他的朋友,并可能导致垮掉他的宝宝的朋友网络.

发现处理这些各种各样的学科很好. 它不是关于创建 恐惧的东西, 而是要表明鲨鱼攻击人类是多么不同寻常.

所以, 我们在看它,还有涉及一个小女孩这一特别是恐怖袭击. 如发现正在攻击的戏剧, 我的儿子 (谁会一直在极其紧张反正), 非常兴奋. 我做一些关于鲨鱼攻击的人是多么不同寻常的声音, 和这个可怜的女孩必须难过. 我试图解释人从这些事件中恢复,并为它变得更强. 不过, 我误解了他的激动. 他并不担心这个女孩根本. 相反, 在他的手在鼓掌的同时, 他告诉我, "鲨鱼爱它! 太棒了. 真棒极了. 其梦想成真!"

我以为这是搞笑, 但也是令人非常不安. 一方面, 我很高兴 — 甚至有点骄傲 — 他可能有强烈的同情心感情, 跨物种,虽然他们可能是. 作为人类, 我们需要发展我们"移情的肌肉" 所以说,否则你就会像 这家伙 🙂 另一方面, 他感觉跨物种移情对当时表现出的行为不利于自己的物种. 讲述人使用"范式"一词时,与这挣扎着,要了真的. 我的儿子身上,并问我什么意味.

这不是这样一个简单的词来描述到四岁, 但我给了它一试. 当我想到"范式"一词, 托马斯.库恩 是从来不会远离我的想法. 我读 科学革命的结构拉斐特 而更好或更糟, "范式一词" 怀孕与额外的意思,对我来说. (有点像 word"接触" 在聆讯后电影电话语音告诉我在我能看见 那部电影 [我以为这本书是更好]; 我总是对自己说, "接触!" 每当我看到或听到有人说"联系人").

不管怎么说, 我想向他解释了一个 Kuhnian 的定义, 这是思想的"一个历史运动" 它是思维的"与大量内置的假设,都难以逃脱的人住在那个时候方式。" 答案是肯定的, 你不能说到四岁, 所以我想先后定义成小碎片,而是为自己感到骄傲的感觉,一样那么. (我只是 知道 在学院外的人会关心我读过库恩!).

他打断我的时候,到任务气候变暖,要我只. 挥舞着他的手 我一般的方向 并从未考虑关闭另一个残暴的鲨鱼攻击他的眼睛, 他只是说, "是的, 是的, 是的. 布拉赫, 布拉赫, 叭"。.

这么多🙂

在那点, 我决定逃跑, 言辞上发言, 坐下来, 和喜欢看鲨鱼攻击人类与我的儿子.

</结束>

Technorati 标签:

切换视图视图基于 InfoPath Form 中的用户 ID

我们已开发 InfoPath 窗体具有多个视图,以支持新的租用 / 入职流程. 当公司雇佣的一个新的人, IT 部门和其他团体需要采取行动 (设置工资单, 启用适当的应用程序的访问, 找到一张桌子, 等). 我们使用窗体,但表单的不同视图为每个这些职能.

在这个公司, 大多数人在业务过程中所涉及的是精通 IT 的, 所以,当他们访问的窗体, 其默认视图是一种"菜单" 查看与直接给他们的特殊功能的按钮. 不过, 我们需要简单化的新员工直接经理. 这个人不应该看到任何 IT 相关的东西. 事实上, 她应该看到的只是一个视图窗体的不会连选项以查看其他视图.

在我们的例子, 直接经理的帐户直接绑在礼貌的形式 联系人选择器 (而我总是想叫"人员选取器" 因为某些原因).

步骤如下::

1. 在设计模式中, 转到工具-> 表单选项-> 打开和保存.

2. 选择"规则".

3. 创建一个新的规则,其操作是"切换到查看" 其条件利用用户名和() 功能.

用户名() 返回"简单" 没有域用户名. 如果我用"domainpagalvin"的凭据登录到 SharePoint, 用户名() 返回"pagalvin".

联系人选择器提供一个联系人信息的三位. "AccountID" 部分是对于这种情况下最有用. 唯一让这甚至有点挑战的是,联系人选择器 (在我的环境无论如何) 返回的域和用户 ID, 如在"domainpagalvin". 这阻止我们做直接的平等条件自 AccountID (""domainpagalvin) 永远不会平等的用户名() (""pagalvin).

我们可以绕过此使用"包含" 操作员: AccountID 包含用户名().

我们可以采取它进一步和 pre 挂起一个硬编码的域用户名前面() 让我们平等检查和消除误报的风险上的函数包含运算符.

我们将不得不真的像自动切换为其他基于 AD 安全组成员身份的用户视图. 例如, 当"它分析的成员" 组访问窗体, 自动切换到 IT 分析视图. 我们没有时间来实现它, 但我首先想到的是创建一个 web 服务,会有像"IsMemberOfActiveDirectorySecurityGroup"的一种方法, 将它传递用户名() 并返回返回 true 或 false. 有没有人有任何其他吗, 更多聪明的主意? 有任何 SharePoint 的函数,我们可以利用从 InfoPath 来做这个决定?

</结束>

Technorati 标签:

无意中向 InfoPath 窗体添加代码; 故意删除它

在窗体上使用按钮时, 我们经常添加规则. 从按钮的属性访问规则编辑器.

时快速点击左右, 很容易不小心点击"编辑表单代码" 而不是"规则 …".

第一次做这, 我取消代码编辑器. 不过, 当我试图同时以后有点发布窗体, 它要求我将作为"经管理员核准的表单模板发布 (先进的)". 我实际上并没有做任何的编程和绝对不想经过不必要的审批过程. 我当时有点恐慌由于时间的限制. 绕过它, 我只是还原以前的备份,并持续. 我最近看了一些关于人们走进表单的 XML 来调整事情的博客帖子,害怕也要类似的东西.

今天, 再次做到. 这一次, 我我手上有多一点时间,发现你可以轻松地撤消这.

转到(G):

工具-> 表单选项-> 编程: "删除代码"

它不会比这更简单.

</结束>

Technorati 标签: ,