none
WebPart FileUpload1 ошибка NullReferenceException RRS feed

  • Общие обсуждения

  • Здравствуйте, товарищи.

    Подскажите, что я не так делаю. Суть в следующем необходимо на кастомной форме создавать элемент списка и загружать фал в библиотеку. Проблема возникает такая:

    Я размещаю на форму элемент FileUpload, но при выборе файла происходит ошибка NullReferenceException

    Для проверки произвожу следующие действия:

      • Создаю пустую веб-часть;
      • Размещаю TextBox, FileUpload и Button
      • Обрабатываю клик по кнопке следующим кодом
      protected void Button1_Click(object sender, EventArgs e)
              {
                  TextBox1.Text = FileUpload1.PostedFile.FileName;
              }

    1. Размещаю веб-часть на странице и при нажатии на кнопку ошибка

    Лог выдает ошибку

    ExecuteRequestInSandBox call failed. Microsoft.SharePoint.UserCode.SPUserCodeSolutionExecutionFailedException: Необработанное исключение в методе Execute объекта-оболочки изолированного кода в частично доверенном домене приложений: Возникла неожиданная ошибка. ---> Microsoft.SharePoint.UserCode.SPUserCodeSolutionProxiedException: Value cannot be null.  Parameter name: path1       -
     -- End of inner exception stack trace ---    Server stack trace:     
     at Microsoft.SharePoint.UserCode.SPUserCodeApplicationHostAppDomainRef.Execute(Type userCodeWrapperType, SPUserCodeCachedAssemblyGroup userAssemblyGroup, Guid siteCollectionId, Byte[] binaryUserCodeToken, Byte[] proxyOperationToken, SPUserCodeExecutionContext executionContext, Boolean shouldUsageLog, Int32 currentProcessId)    
     at Microsoft.SharePoint.UserCode.SPUserCodeApplicationHostAppDomainRef.Execute(Type userCodeWrapperType, SPUserCodeCachedAssemblyGroup userAssemblyGroup, Guid siteCollectionId, Byte[] binaryUserCodeToken, Byte[] proxyOperationToken, SPUserCodeExecutionContext executionContext, Boolean shouldUsageLog, Int32 currentProcessId)    
     at Microsoft.SharePoint.UserCode.SPUserCodeAppDomain.Execute(Type userCodeWrapperType, SPUserCodeCachedAssemblyGroup userAssemblyGroup, Guid siteCollectionId, Byte[] binaryUserCodeToken, Byte[] proxyOperationToken, SPUserCodeExecutionContext executionContext, Boolean shouldUsageLog, Int32 currentProcessId)    
     at Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcessProxyForShim.ExecuteInternal(Type userCodeWrapperType, SPUserCodeCachedAssemblyGroup userAssemblyGroup, Guid siteCollectionId, Byte[] binaryUserCodeToken, Byte[] proxyOperationToken, SPUserCodeExecutionContext executionContext)    
     at Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcessProxy.Execute(Type userCodeWrapperType, SPUserCodeCachedAssemblyGroup userAssemblyGroup, Guid siteCollectionId, Byte[] binaryUserCodeToken, Byte[] proxyOperationToken, SPUserCodeExecutionContext executionContext)    
     at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)    
     at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)    Exception rethrown
     at [0]:     
     at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)    
     at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)    
     at Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcess.ExecuteDelegate.EndInvoke(IAsyncResult result)    
     at Microsoft.SharePoint.UserCode.SPUserCodeWorkerProcess.Execute(Type userCodeWrapperType, SPUserCodeCachedAssemblyGroup userAssemblyGroup, Guid siteCollectionId, SPUserToken userToken, String currentAffinity, SPUserCodeExecutionContext executionContext)    
     at Microsoft.SharePoint.UserCode.SPUserCodeExecutionHost.Execute(Type userCodeWrapperType, Guid siteCollectionId, SPUserToken userToken, String affinity, SPUserCodeExecutionContext executionContext)    
     at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)    
     at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)    Exception rethrown
     at [1]:     
     at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)    
     at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)    
     at Microsoft.SharePoint.Administration.ISPUserCodeExecutionHostProxy.Execute(Type userCodeWrapperType, Guid siteCollectionId, SPUserToken userToken, String affinityBucketName, SPUserCodeExecutionContext executionContext)    
     at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.Execute(Type userCodeWrapperType, SPSite site, SPUserCodeExecutionContext executionContext, SPUserCodeActivationSiteInfo activationSite)    
     at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.Execute(Type userCodeWrapperType, SPSite site, SPUserCodeExecutionContext executionContext)    
     at Microsoft.SharePoint.UserCode.SPUserCodeWebPartRemoteExecutionHelper.<>c__DisplayClassa.<ExecuteRequestInSandBox>b__9()    
     at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)    
     at Microsoft.SharePoint.UserCode.SPUserCodeWebPartRemoteExecutionHelper.ExecuteRequestInSandBox(HttpContext context, SPWeb web, SPWebPartManager manager, SPUserCodeWebPart userCodeWebPart)

    28 сентября 2015 г. 11:01

Все ответы

  • Добрый день,

    надо использовать FormDigest.

    Отправка файла из локальной папки на сайт SharePoint

    <form id="Form1" method="post" runat="server">
       <SharePoint:FormDigest runat="server" />
       <input id="File1" type="file" runat="server" title="upldFileBox">
       <asp:Button id="Button1" runat="server" 
          Text="Upload File"></asp:Button>
       <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
    </form>
    
    //Код Button Click
    if (File1.PostedFile == null)
        return;
    
    string destUrl = "portal.com";
    
    SPWeb site = new SPSite(destUrl).OpenWeb();
    
    Stream fStream = File1.PostedFile.InputStream;
    byte[] contents = new byte[fStream.Length];
    
    fStream.Read(contents, 0, (int)fStream.Length);
    fStream.Close(); 
    
    EnsureParentFolder(site, destUrl);
    
    site.Files.Add(destUrl, contents);

    Уже обсуждали в Добавление элементов в лист SharePoint из .txt файла

    29 сентября 2015 г. 2:03
  • Спасибо. Поиском не нашел :(.

    Подскажите, пожалуйста, как быть? при добавлении <SharePoint:FormDigest runat="server" /> выдает ошибку The type or namespace name 'FormDigest' does not exist in the namespace 'Microsoft.SharePoint.WebControls' (are you missing an assembly reference?), хотя Microsoft.SharePoint.WebControls присутствует


    29 сентября 2015 г. 10:16
  • Спасибо. Поиском не нашел :(.

    Подскажите, пожалуйста, как быть? при добавлении <SharePoint:FormDigest runat="server" /> выдает ошибку The type or namespace name 'FormDigest' does not exist in the namespace 'Microsoft.SharePoint.WebControls' (are you missing an assembly reference?), хотя Microsoft.SharePoint.WebControls присутствует


    1. В Visual Studio создайте sharePoint Application. Проверьте, что на странице aspx присутствует код:

    <%@Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>

    2. Добавьте форму Form1, скомпилируйте проект.

    30 сентября 2015 г. 2:12
  • <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
    <%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
    <%@ Import Namespace="Microsoft.SharePoint" %> 
    <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CreateRequest.ascx.cs" Inherits="RequestToPay.CreateRequest.CreateRequest" %>
    <form id="Form1" method="post" runat="server">
       <SharePoint:FormDigest runat="server" />
       <input id="File1" type="file" runat="server" title="upldFileBox">
       <asp:Button id="Button1" runat="server" 
          Text="Upload File"></asp:Button>
       <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
    </form>

    На странице присутствует следующий код

    30 сентября 2015 г. 6:50
  • Какой Framework указан в проекте? Попробуйте понизить, а потом вернуть обратно.
    30 сентября 2015 г. 7:09
  • Попробовал:

    • 4.6
    • 4.5.2
    • 4.5.1
    • 4.5
    • 4

    все одно и тоже

    30 сентября 2015 г. 8:22
  • Попробовал:

    • 4.6
    • 4.5.2
    • 4.5.1
    • 4.5
    • 4

    все одно и тоже

    Попробуйте так: 4.5 -> 3.5 -> 4.5
    30 сентября 2015 г. 8:37
  • Попробовал:

    • 4.6
    • 4.5.2
    • 4.5.1
    • 4.5
    • 4

    все одно и тоже

    Попробуйте так: 4.5 -> 3.5 -> 4.5
    ни чего не меняется :(
    30 сентября 2015 г. 10:20
  • Попробуйте удалить reference на сборку из проекта и потом снова добавить, при этом указать расположение напрямую в Hive. Ничего другого в голову уже не приходит.
    1 октября 2015 г. 2:41
  • Попробуйте удалить reference на сборку из проекта и потом снова добавить, при этом указать расположение напрямую в Hive. Ничего другого в голову уже не приходит.

    Я наверное, просто тугодум, но к сожалению ни чего не получается...

    Хотел попробовать на js сделать, но и тут проблема при создании apps и запуске на сайте разработчика ошибка страница не найдена :(

    2 октября 2015 г. 8:36