SharePoint登录页似乎没有从/_布局加载样式,抛出错误“值不能为null”

SharePoint登录页似乎没有从/_布局加载样式,抛出错误“值不能为null”,sharepoint,forms-authentication,wss,Sharepoint,Forms Authentication,Wss,我有一个WSS3.0的自定义登录页面,使用基于表单的身份验证。它使用了/_布局中提供的simple.master主页,因此当我进入登录页面时,我希望看到一些品牌和登录组件周围的蓝色和黄色屏幕。这种情况有时会发生。另一方面,有时我进入登录页面,却没有任何样式;它只是在白色背景下显示我的登录组件。如果我尝试使用有效或无效登录登录,我会得到: Value cannot be null. Parameter name: value at System.String.EndsWith(String

我有一个WSS3.0的自定义登录页面,使用基于表单的身份验证。它使用了/_布局中提供的simple.master主页,因此当我进入登录页面时,我希望看到一些品牌和登录组件周围的蓝色和黄色屏幕。这种情况有时会发生。另一方面,有时我进入登录页面,却没有任何样式;它只是在白色背景下显示我的登录组件。如果我尝试使用有效或无效登录登录,我会得到:

Value cannot be null. Parameter name: value at System.String.EndsWith(String value, StringComparison comparisonType) at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PostAuthenticateRequestHandler(Object oSender, EventArgs ea) at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 此空值不会出现在我的自定义登录代码中,而是在SharePoint API中。我用Reflector查看了它们,我认为这个异常是由于无法在客户端资源中加载某些内容造成的,这很奇怪,但显然是这样

这个问题时断时续地发生。iisreset或循环使用应用程序池似乎不会让它消失,但有时它似乎只会自我修复一个小时左右。我在网上看到过一些关于这个问题的参考资料,但没有一个解决方案对我有效。很容易认为你已经解决了这个问题,因为它会在一段时间内突然恢复正常

我已经检查了目录权限和应用程序池标识是否可以读取/_布局及其子文件夹

谢谢


更新:我有一些理由相信,但几乎没有能力测试,当您将web.config从一台服务器批发复制到另一台服务器时,会发生这种情况。

问题似乎是layouts目录中的web.config将批编译设置为false

我也有同样的问题。C:\Program Files\Common Files\Microsoft Shared\web Server Extensions\12\TEMPLATE\LAYOUTS中的web.config包含以下行:

<compilation batch="false" batchTimeout="600" maxBatchSize="10000" maxBatchGeneratedFileSize="10000" />
该行应为:

<compilation batch="true" batchTimeout="600" maxBatchSize="10000" maxBatchGeneratedFileSize="10000" />
有关更多信息:


2009年11月30日更新:供参考。看起来这实际上并没有解决问题,但似乎延长了错误间隔时间

FBA也有同样的错误,刚刚发现一篇博文,指出SPWebApplication.Lookup函数的工作方式可能存在问题

简短的版本是:如果手动创建或更改了IIS网站,则似乎需要指定与IIS中的区域相匹配的正确主机头值


这是供参考的解决方案。

我已经看到了这个解决方案。一开始它似乎奏效了,但这显然只是因为这个问题是间歇性的。它没有为我解决它。