zoukankan      html  css  js  c++  java
  • SharePoint开发中常见的几种错误类型及解决方法

    在sharepoint开发中遇到的一些问题和解决方案

    1.错误类型:

    The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.

    解决方案:

    Microsoft.SharePoint.Administration.SPWebApplication webApp = site.Site.WebApplication;
    webApp.FormDigestSettings.Enabled = false;
    SPFile spFile = site.Files.Add(fileUpload.FileName, contents);
    spFile.Item.Update();
    webApp.FormDigestSettings.Enabled = true;
    web.AllowUnsafeUpdates = true;
    site.AllowUnsafeUpdates = true;

    2. 错误类型 :

    在 sharepoint中报未知错误

    解决方案:

    在该站点下的配置文件里面修改以下节点

    1.<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="10" TotalFileDependencies="50" AllowPageLevelTrace="false">
    改为:
    <SafeMode MaxControls="200" CallStack="true" DirectFileDependencies="10" TotalFileDependencies="50" AllowPageLevelTrace="false">

    2.<customErrors mode="On " /> 改为:<customErrors mode="Off " />

    3.<compilation batch="false" debug="false ">改为; <compilation batch="false" debug="true ">

    修改后就会把错误源显示出来,总比报"未知错误"好吧!

    3. 错误类型 :

    Unable to serialize the session state. In 'StateServer' and 'SQL Server' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.

    解决 方案:

    被使用的类必须标记为可序列化!

    4.错误类型 :

    如果配置好的sharepoint,也在同一个域,把用户加进了网站的成员组里面,但是该组里面的成员还是不能访问

    解决方案:

    请关闭防火墙。![如果报访问受限,则把成员加进网站的成员组里面]

    4. 错误类型 :

    Operation is not valid due to the current state of the object

    解决方案:提升权限

    SPSecurity.RunWithElevatedPrivileges(delegate() {

    SPSite site = new SPSite(http://oa:9000 );

    SPWeb web = site.OpenWeb();
    using (site)

    //...

    });

    或者:

    private string GetPictureUrl(string loginName)
        {

    SPSite site = null;
            SPWeb web = null;
            using (site = new SPSite(mySiteUrl))
            {
                using (web = site.RootWeb)
                {
                    web.AllowUnsafeUpdates = true;
                    ServerContext ctx = ServerContext.GetContext(site);
                    UserProfileManager profileMgr = new UserProfileManager(ctx);
                    if (HttpContext.Current != null)
                    {
                        if (HttpContext.Current.Items["HttpHandlerSPWeb"] == null)
                        {
                            HttpContext.Current.Items["HttpHandlerSPWeb"] = web;
                        }
                        if (HttpContext.Current.Items["Microsoft.Office.ServerContext"] == null)
                        {
                            HttpContext.Current.Items["Microsoft.Office.ServerContext"] = ctx;
                        }
                    }
                    if (profileMgr.UserExists(loginName))
                    {
                        //Microsoft.SharePoint.Portal.UserProfiles.UserProfile up =  upMan.GetUserProfile(loginName);
                        Microsoft.Office.Server.UserProfiles.UserProfile up = profileMgr.GetUserProfile(loginName);
                        if (!string.IsNullOrEmpty(up[PropertyConstants.PictureUrl].Value as string))
                        {
                            return up[PropertyConstants.PictureUrl].Value.ToString();
                        }
                        else
    { return “”; } }

    注意,不能乱提升权限,因为提升权限后一切都是System Account用户的操作!比如是别人回复的博客和 Discussions 的回复人都是"System Account"这个人!这个当然是不对的了!

    5.错误类型: Illegal characters in path. 【路径中非法字符。】

    A: 在把UserControl配置到sharepoint里面时

    <%@ Register src="~/_controltemplates/revolution9000/  [这里换行了]
    GroupBlogPostInfo.ascx" tagname="GroupBlogPostInfo" tagprefix="uc1" %>
    如果要换行,则可以在 tagname 那里换行!每个属性的值不能截断 这个问题太变态!找这个问题 郁闷惨了!还是同事Bobby找到的,我可以没有那么好的耐心.

    6.错误类型:Visual Studio 2008的代码度量和引用的程序集

    在不同的创作后的今天早些时候的过程中,我偶然发现一个错误,同时使用代码度量在Visual Studio 2008的功能。 在点击分析 菜单,然后点击 代码度量的计算解决方案 ,我遇到的解决方案在几个项目的错误类似于以下内容: 发生错误时计算目标文件『E代码度量:\ NotBackedUp \ ...'项目...下面的错误阅读时遇到模块'Microsoft.SharePoint':无法解析类型:?Ť?对象模型?。 英文错误:[Project: Revolution.WebSite
    Configuration: Debug
    Scope: None
    Assembly: C:\Users\hao.jiang\Desktop\2010-01-06\kkjhjhjhjhjhjhjhjhjhk\SharePointObject\Revolution.WebSite\bin\Revolution.WebSite.dll
    Maintainability Index:
    Cyclomatic Complexity:
    Depth of Inheritance:
    Class Coupling:
    Lines of Code:
    Message: An error occurred while calculating code metrics for target fil 'C:\Users\hao.jiang\Desktop\2010-01-06\kkjhjhjhjhjhjhjhjhjhk\SharePointObject\Revolution.WebSite\bin\Revolution.WebSite.dll' in project Revolution.WebSite. The following error was encountered while reading module 'Microsoft.SharePoint': Could not resolve type: T ObjectModel.]

    (不要问我,'?'字的意思应该是 - 我只是复制和粘贴从Visual Studio中直接完成。)
    原来,这是在Visual Studio 2008已知的错误,由于默认设置,允许家属集会在一个项目中使用没有明确引用它们。

    解决方法是明确的依赖程序集添加到项目。

    引用后明确 Microsoft.SharePoint.Security到报错的项目里面!添加引用就可以了!

    7.错误类型:

    未能加载文件或程序集 “Microsoft.SharePoint.Library, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或它的某一个依赖项。系统找不到指定的文件。

    没有sharepoint环境!必需运行在装有sharepoint环境的机子运行!

    8. 错误类型:

    浏览本机上 sharepoint网站:如http://jinho:9000 出现了Service Unavailable 错误![503]  我已经第二次遇到了!

    打开server Manager,查看9000端口的服务是否启动!如果已开启还是出现了那个问题! 请在查看 application Pool[应用程序池] 很有可能是application Pools里面的9000端口的服务没有启动!右键启动即可

  • 相关阅读:
    mybatis 错误 Invalid bound statement (not found)
    Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
    bug 记录 Unable to start ServletWebServerApplicationContext due to multiple ServletWebServerFactory beans
    解决:The Tomcat connector configured to listen on port 8182 failed to start. The port may already be in use or the connector may be misconfigured.
    jquery validate 验证插件 解决多个相同的Name 只验证第一个的方案
    phpStorm+xdebug调试(php7.3)
    小程序视频多个视频播放与暂停
    CSS实现单行、多行文本溢出显示省略号(…)
    Packet for query is too large (4,544,730 > 4,194,304). You can change this value on the server by setting the 'max_allowed_packet' variable.
    idea自动在文件头中添加作者和创建时间
  • 原文地址:https://www.cnblogs.com/chenjq0717/p/1730854.html
Copyright © 2011-2022 走看看