我必须在设置我的站点时停用MDS。我已经尝试在自定义功能中使用事件接收器,但似乎当我在接收器中执行此代码时

Guid featureGuid = new Guid("87294C72-F260-42f3-A41B-981A2FFCE37A");
if (mySiteWeb.Features[featureGuid] != null)
{
     mySiteWeb.Features.Remove(featureGuid);
}

什么都没发生。

这只适用于我的网站创建和整个用户界面。如果我去 Manage Site Features 并手动停用和激活我的自定义功能MDS关闭。

任何想法如何实现这一目标?

有帮助吗?

解决方案

我们有同样的问题。我们有一个装订功能,将品牌应用到我的个人网站。订书机代码运行,但MDS仍然处于活动状态。我们所做的是将自定义控件添加到个人站点母版页,该主页在加载站点时停用MDS。在这个自定义控件中,我们添加了if/else检查此代码是否运行一次(通过将值放到web。属性),如果它已经这样做了,只是没有再次停用它。

我们能够做到这一点,因为这是一个农场解决方案。如果你在Office365等,你需要做"应用程序装订"

http://blogs.msdn.com/b/richard_dizeregas_blog/archive/2013/03/04/sharepoint-2013-app-deployment-through-quot-app-stapling-quot.aspx

其他提示

下面的PowerShell将更新当前场"MDSFeature"XML以禁用所有新创建的网站集和子web。如果您需要支持IE8和旧版浏览器,这可能会有所帮助。功能GUID在技术上保持活动状态,但不会对缺少的DLL程序集细节执行任何操作。在桌面升级(IE11/Win8)之后,可以通过简单的文件复制"ORIG"回到"XML"来逆转这种变化。"希望这有帮助!

http://www.spjeff.com/2015/02/13/knee-cap-mds-disable-for-new-and-current-sites/

# Disable MDS - run once per farm
# unregister Feature definition from ConfigDB
Uninstall-SPFeature MDSFeature -Force -Confirm:$false

# backup current Feature XML
$path = "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\FEATURES\MDSFeature\feature.xml"
Copy-Item $path "$path-orig"

# modify Feature XML to suppress DLL assembly detail  (still registered, but unable to run)
[xml] $x = Get-Content $path
$x.Feature.RemoveAttribute("ReceiverClass")
$x.Feature.RemoveAttribute("ReceiverAssembly")
$x.Save($path)

# register Feature to ConfigDB
Install-SPFeature MDSFeature

我还没有完成这个测试,但是如果你正在更改母版页,你可以添加以下内容来禁用MDS(如果MDS被激活,它将以标准模式nomatter呈现页面):

<SharePoint:PageRenderMode runat="server" RenderModeType="Standard" />
许可以下: CC-BY-SA归因
scroll top