sdchy 发表于 2015-9-26 13:38:44

SharePoint开发中常见的几种错误类型及解决方法!

  在sharepoint开发中遇到的一些问题和解决方案
  1.错误类型:
  The security validation for this pageis invalid. Click Back in your Web browser, refresh the page, and tryyour operation again.
  解决方案:
  Microsoft.SharePoint.Administration.SPWebApplicationwebApp = 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.<SafeModeMaxControls="200" CallStack="false" DirectFileDependencies="10"TotalFileDependencies="50" AllowPageLevelTrace="false">
改为:
<SafeModeMaxControls="200" CallStack="true" DirectFileDependencies="10"TotalFileDependencies="50" AllowPageLevelTrace="false">
  2.<customErrorsmode="On " /> 改为:<customErrors mode="Off " />
  3.<compilationbatch="false" debug="false ">改为; <compilation batch="false"debug="true ">
  修改后就会把错误源显示出来,总比报"未知错误"好吧!
  3. 错误类型 :
  Unable to serialize the sessionstate. In 'StateServer' and 'SQL Server' mode, ASP.NET will serializethe session state objects, and as a result non-serializable objects orMarshalByRef objects are not permitted. The same restriction applies ifsimilar serialization is done by the custom session state store in'Custom' mode.
  解决 方案:
  被 使用的类必须标记为可序列化!
  4.错误类型 :
  如果配置好的sharepoint,也在 同一个域,把用户加进了网站的成员组里面,但是该组里面的成员还是不能访问
  解决方案:
   请关闭防火墙。![如果报访问受限,则把成员加进网站的成员组里面]
  4. 错误类型 :
  Operation is not valid due to thecurrent state of the object
  解决方案:提升权限
  SPSecurity.RunWithElevatedPrivileges(delegate(){
  SPSite site = new SPSite(http://jianghao:9000 );
   SPWeb web = site.OpenWeb();
using (site)
  //...
  });
  或者:
  private stringGetPictureUrl(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);
                UserProfileManagerprofileMgr = 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.Value asstring))
                  {
                        returnup.Value.ToString();
                     }
                  else { return “”; } }
  注意,不能乱提升权限,因为提升权限后一切都是SystemAccount用户的操作!比如是别人回复的博客和 Discussions 的回复人都是"SystemAccount"这个人!这个当然是不对的了!
  5.错误类型: Illegal characters in path.【路径中非法字符。】
   A: 在把UserControl配置到sharepoint里面时
  <%@ Registersrc="~/_controltemplates/revolution9000/[这里换行了]
GroupBlogPostInfo.ascx"tagname="GroupBlogPostInfo" tagprefix="uc1" %> 如果要换行,则可以在 tagname 那里换行!每个属性的值不能截断 这个问题太变态!找这个问题 郁闷惨了!还是同事Bobby找到的,我可以没有那么好的耐心.http://www.zu14.cn/coolemotion/emotions/zz_1.gif
  6.错误类型:Visual Studio2008的代码度量和引用的程序集
  在不同的创作后的今天早些时候的过程中,我偶然发现一个错误,同时使用代码度量在Visual Studio2008的功能。 在点击 分析 菜单,然后点击代码度量的计算解决方案 ,我遇到的解决方案在几个项目的错误类似于以下内容: 发生错误时计算目标文件『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
MaintainabilityIndex:
Cyclomatic Complexity:
Depth of Inheritance:
ClassCoupling:
Lines of Code:
Message: An error occurred whilecalculating 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 encounteredwhile reading module 'Microsoft.SharePoint': Could not resolve type: TObjectModel.]
  (不要问我,'?'字的意思应该是 - 我只是复制和粘贴从VisualStudio中直接完成。)
原来,这是在Visual Studio2008已知的错误,由于默认设置,允许家属集会在一个项目中使用没有明确引用它们。
  解决方法是明确的依赖程序集添加到项目。
  引用后明确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 错误!我已经第二次遇到了!
  打开serverManager,查看9000端口的服务是否启动!如果已开启还是出现了那个问题! 请在查看 application Pool[应用程序池]很有可能是application Pools里面的9000端口的服务没有启动!右键启动即可
页: [1]
查看完整版本: SharePoint开发中常见的几种错误类型及解决方法!