代码之家  ›  专栏  ›  技术社区  ›  strongopinions

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

  •  0
  • strongopinions  · 技术社区  · 17 年前

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

    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或回收应用程序池似乎并不会让它消失,但有时它似乎只会自我修复一个小时左右。我在网上看到过一些关于这个问题的参考资料,但上面提到的解决方案都不适用于我。很容易认为你已经解决了这个问题,因为它有一段时间会突然恢复正常。

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

    谢谢

    2 回复  |  直到 16 年前
        1
  •  0
  •   2 revs<br/>Brock&#13;    16 年前

    问题似乎在于,网络。layouts目录中的配置将批编译设置为false。

    我也有同样的问题。网络。C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS中的配置包含以下行:

    <compilation batch="false" batchTimeout="600" maxBatchSize="10000" maxBatchGeneratedFileSize="10000" />
    

    这一行应该是:

    <compilation batch="true" batchTimeout="600" maxBatchSize="10000" maxBatchGeneratedFileSize="10000" />
    

    有关更多信息: Fixing the Elusive “Value Cannot Be Null” FBA Authentication Error

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

        2
  •  0
  •   j0k gauthamp    14 年前

    FBA也有同样的错误,刚刚发现一篇博客帖子,表明这可能是FBA的工作方式有问题 SPWebApplication.Lookup() 功能正常。

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

    这是答案 relevant blog post 供参考。

    推荐文章