首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署步骤添加解决方案时出错

部署步骤添加解决方案时出错
EN

Stack Overflow用户
提问于 2012-08-15 05:24:19
回答 1查看 3.9K关注 0票数 1

我正在开发一个沙盒解决方案SharePoint 2010 (SharePoint Online项目)。

我得到的错误是

代码语言:javascript
复制
Error   19  Error occurred in deployment step 'Add Solution': This solution contains invalid markup or elements that cannot be deployed as part of a sandboxed solution. Solution manifest for solution 'c353c02e-f7b0-4c58-b7c6-066adf1d7e0c' failed validation, file manifest.xml, line 3, character 4: The element 'Solution' in namespace 'http://schemas.microsoft.com/sharepoint/' has invalid child element 'CodeAccessSecurity' in namespace 'http://schemas.microsoft.com/sharepoint/'. List of possible elements expected: 'FeatureManifests, Assemblies, ActivationDependencies' in namespace 'http://schemas.microsoft.com/sharepoint/'.
        0   0   Starwood_Forms

我在Visual Studio中的清单文件(Package.package)如下所示

代码语言:javascript
复制
<Solution xmlns="http://schemas.microsoft.com/sharepoint/" SolutionId="c353c02e-f7b0-4c58-b7c6-066adf1d7e0c" SharePointProductVersion="14.0">
  <CodeAccessSecurity>
    <PolicyItem>
      <PermissionSet class="NamedPermissionSet" version="1" Description="Permission set for ProjectNameHere.">
        <IPermission class="AspNetHostingPermission" version="1" Level="Minimal" />
        <IPermission class="SecurityPermission" version="1" Flags="Execution,ControlPrincipal,ControlAppDomain,ControlDomainPolicy,ControlEvidence,ControlThread" />
        <IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" ObjectModel="True" />
        <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="UserName" />
        <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="$AppDir$" Write="$AppDir$" Append="$AppDir$" PathDiscovery="$AppDir$" />
      </PermissionSet>
      <Assemblies>
        <Assembly Name="ProjectNameHere" />
      </Assemblies>
    </PolicyItem>
  </CodeAccessSecurity>
  <Assemblies>
    <Assembly Location="ProjectNameHere.dll" DeploymentTarget="GlobalAssemblyCache">
      <SafeControls>
        <SafeControl Assembly="ProjectNameHere, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7e39ecec9e69afb4" Namespace="ProjectNameHereWebPart" TypeName="*" />
      </SafeControls>
    </Assembly>
  </Assemblies>
  <FeatureManifests>
    <FeatureManifest Location="ProjectNameHere_Feature2\Feature.xml" />
  </FeatureManifests>
</Solution>

如果我从“解决方案”元素中删除"CodeAccessSecurity“标签,那么解决方案将从VS中部署和激活,而不会出现任何问题。我无法从网络激活解决方案,我试过了。

该解决方案包含一个Web部件,它使用LINQ从其他列表中获取数据+在列表中创建新的列表项。

我在"Solution“中添加了"CodeAccessSecurity”标签,因为如果没有它,我会得到一个错误

代码语言:javascript
复制
The type initializer for 'Microsoft.SharePoint.Linq.Resources' threw an exception. 
Error Source: Microsoft.SharePoint.Linq 
Stack Trace:    at Microsoft.SharePoint.Linq.Resources.GetString(String resourceId, Object[] args)
   at Microsoft.SharePoint.Linq.EntityTracker.ProcessAssociatedEntity(NewEntityRef newEref, Stack`1 visited, PropertyMap pm, Object lookupEntity)
   at Microsoft.SharePoint.Linq.EntityTracker.ProcessAssociatedEntities(NewEntityRef newEref, ITrackOriginalValues origVals, Stack`1 visited)
   at Microsoft.SharePoint.Linq.EntityTracker.SubmitNewEntity(NewEntityRef newEref, Stack`1 visited)
   at Microsoft.SharePoint.Linq.EntityTracker.SubmitNewEntities()
   at Microsoft.SharePoint.Linq.EntityTracker.SubmitChanges(ConflictMode failureMode, Boolean systemUpdate)
   at Microsoft.SharePoint.Linq.DataContext.SubmitChanges(ConflictMode failureMode, Boolean systemUpdate)
   at Microsoft.SharePoint.Linq.DataContext.SubmitChanges()
   at Starwood.Forms.TaskForceNeedWebPart.TaskForceNeedWebPart.btnSubmit_Submit(Object sender, EventArgs e) 
Target Site: System.String GetString(System.String, System.Object[]) 
Help Link:  
Data Begin Information 

Data End Information 



Writing inner exception details.

Error Message: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. 
Error Source: mscorlib 
Stack Trace:    at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
   at System.Security.CodeAccessPermission.Demand()
   at System.Reflection.Assembly.VerifyCodeBaseDiscovery(String codeBase)
   at System.Reflection.Assembly.GetName(Boolean copiedName)
   at Microsoft.SharePoint.Linq.Resources.GetResourceManager()
   at Microsoft.SharePoint.Linq.Resources..cctor() 
Target Site: Void Check(System.Object, System.Threading.StackCrawlMark ByRef, Boolean) 
Help Link:  
Data Begin Information 

Data End Information 

当代码尝试创建一个新的列表项时,我得到了上面的错误。

我正在使用沙盒可视化web部件。

如果我从" solution“中删除了"CodeAccessSecurity”子元素,但我无法创建新的列表项,则该解决方案将被激活,而不会出现任何问题。我正在使用LINQ to SharePoint创建一个新的列表项

EN

回答 1

Stack Overflow用户

发布于 2012-08-15 22:21:12

如果我不使用数据上下文来创建新的列表项,那么下面的代码可以很好地工作

代码语言:javascript
复制
 SPList list = objWeb.Lists.TryGetList("ListName");
                        SPListItem newListItem = list.AddItem();
                        newListItem["Department"] = new SPFieldLookupValue(int.Parse(ddlDepartment.SelectedValue), ddlDepartment.SelectedItem.Text);

                        newListItem.Update();

如果你还有其他的想法,请让我知道

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11960971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档