3

救命!在寻找优质、免费的 asp.net/ajax 上传控件时,我找到了 NeatUpload。我找不到它的在线演示,但下载包确实带有演示。我需要一些帮助来在我的服务器(Windows Server 2008)上安装它。

我按照http://mumblestiltskin.blogspot.com/2009/10/using-neatupload-simple-setup.html上的说明进行操作(它们与 NeatUpload 二进制包随附的 manual.htm 中的说明基本相同) .

到目前为止,我有

  • 使用 gacutil 成功将 Brettle.Web.NeatUpload.dll 安装到 GAC。
  • 在我的 web.config 中添加了参考(带有版本和 guid)
  • 将演示文件及其代码复制到我的 Web 应用程序(在 iis7 中注册)

现在,当我浏览到该页面时,我收到一个 asp.net 服务器错误

Line 35: protected MultiFile multiFile;
Line 36: protected MultiFile multiFile2;
Line 37: protected InputFile inputFile;

error CS0246: The type or namespace name 'MultiFile' could not be found (are you missing a using directive or an assembly reference?)
error CS0246: The type or namespace name 'MultiFile' could not be found (are you missing a using directive or an assembly reference?)
error CS0246: The type or namespace name 'InputFile' could not be found (are you missing a using directive or an assembly reference?)
error CS0246: The type or namespace name 'InputFile' could not be found (are you missing a using directive or an assembly reference?)
error CS0246: The type or namespace name 'ProgressBar' could not be found (are you missing a using directive or an assembly reference?)
error CS0246: The type or namespace name 'ProgressBar' could not be found (are you missing a using directive or an assembly reference?)

现在我该怎么做?我是否需要在某处复制另一个 dll 或某些文件?我无法从文档中弄清楚。

4

1 回答 1

5

弄清楚了!我正在将控件部署到共享点 Web 应用程序。(下面,将 SPVD 视为“Sharepoint 应用程序的虚拟目录”。)如果您不部署到 Sharepoint 网站,那么您将使用我使用 Sharepoint 的 Web 应用程序虚拟目录的根目录。以下是我在我的服务器上运行演示页面所遵循的步骤。

首先,如果您使用“web-application”而不是“web-site”,配置会有所不同。我不会在这里讨论差异。但在我的示例中,我正在配置一个简单的“网站”。我不得不:

  • 复制Brettle.Web.NeatUpload.dll到服务器上的 GAC(似乎在 Windows Server 2008 上,您不必使用 gacutil - 只需将 dll 复制到 %windir%\assembly。另请注意,您必须在服务器上执行此操作;它不会如果您尝试通过网络共享进行操作,则无法正常工作)。如果您不这样做,NeatUpload Demo 将不会做任何事情。完成此操作后,您必须在 IIS 中重新启动网站。
  • 一些指南说您需要更新 web.config 以显示适当的版本和 guid,但我发现我不必这样做(您将在下面看到我的 web.config)-除非您想使用netupload 的部分配置在 web.config 中。所以,最好只是做对,你知道的。
  • 指南还说要在 aspx 页面中使用 guid 和版本号,比如demo.aspx,所以,替换这个:

    <%@ Register TagPrefix="Upload" Namespace="Brettle.Web.NeatUpload" Assembly="Brettle.Web.NeatUpload" %>

    有了这个:

    <%@ Register TagPrefix="Upload" Namespace="Brettle.Web.NeatUpload" Assembly="Brettle.Web.NeatUpload, Version=1.3.3798.663,Culture=neutral, PublicKeyToken=c95290d92c5893c8" %>

  • 将整个目录复制NeatUpload-1.3.25\dotnet\app\binSVPD\bin. 它包含以下项目:

    • Brettle.Web.NeatUpload.dll(与您安装到 GAC 的相同)
    • Brettle.Web.NeatUpload.GreyBoxProgressBar.dll
    • Brettle.Web.NeatUpload.HashedInputFile.dll
    • Hitone.Web.SqlServerUploader.dll
    • 一个名为的目录en-US(其中包含一个 dll)
    • 另一个名为的目录fr(其中包含一个 dll)
    • 几个 .mdb 数据库和 Brettle.Web.NeatUpload.xml
    • 将对 http 模块的引用添加到 web 应用程序的 web.config 文件(参见下面的 web.config 示例)。
  • 现在,您需要将目录:复制NeatUpload-1.3.25\dotnet\app\NeatUpload到 SPVD,并将其命名为NeatUpload,以便您拥有SVPD\NeatUpload其所有原始内容。现在,在该文件夹中,您需要编辑两个文件:Progress.aspxSmoothProgress.aspx. 在指南中,有人告诉我在 @ 声明中使用 guid 和版本号,例如:

    <%@ Page language="c#" AutoEventWireup="false" Inherits="Brettle.Web.NeatUpload.ProgressPage,Brettle.Web.NeatUpload,Version=1.3.3519.18793,Culture=neutral,PublicKeyToken=C95290D92C5893C8" %>

    <%@ Register TagPrefix="Upload" Namespace="Brettle.Web.NeatUpload" Assembly="Brettle.Web.NeatUpload, Version=1.3.3798.663,Culture=neutral, PublicKeyToken=c95290d92c5893c8" %>

这是我放在演示页面文件夹中的 web.config。

<?xml version="1.0"?>
<configuration>

  <configSections>
    <!--You need this part so that you can have a neatupload configuration section.  You will get .net errors if you try to add the configuration section without this part here.-->
    <section name="neatUpload"
      type="Brettle.Web.NeatUpload.ConfigSectionHandler, Brettle.Web.NeatUpload"
      allowLocation="true"
      />
  </configSections>

  <!--This is where you put your neatupload configuration preferences.-->
  <neatUpload xmlns="http://www.brettle.com/neatupload/config/2008"
      useHttpModule="true"
    />

  <system.web>
    <customErrors mode="Off"/>
    <!-- Always required to use any of NeatUpload's features.  Without it, ProgressBars won't display and MultiFile will look like a regular HtmlInputFile. -->
    <httpModules>
      <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule,Brettle.Web.NeatUpload,Version=1.3.3798.663,Culture=neutral,PublicKeyToken=c95290d92c5893c8" />
    </httpModules>

    <!-- Set these next 2 attributes large enough to accomodate the largest and longest running upload you want to support.  Note that browsers and IIS typically don't support uploads larger than 2GB (2097151 KB). -->
    <httpRuntime maxRequestLength="2097151" executionTimeout="999999"/>

    <!-- Not required for NeatUpload but makes it easier to debug in VS. -->
    <compilation debug="true"/>
  </system.web>

  <!-- For IIS7's Integrated Pipeline Mode which is used by the DefaultAppPool. -->
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- Increased maxAllowedContentLength from default of 300MB. -->
        <requestLimits maxAllowedContentLength="2147483648" />
      </requestFiltering>
    </security>
    <modules>
      <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule,Brettle.Web.NeatUpload,Version=1.3.3798.663,Culture=neutral,PublicKeyToken=c95290d92c5893c8" preCondition="managedHandler"/>
    </modules>
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>
</configuration>

关于安装包的一些注意事项 我使用的安装包位于http://neatupload.codeplex.com/releases/view/46086 - 似乎还有一些其他的,例如http://neatupload 上的“二进制包”。 codeplex.com/releases/view/59339,但目录结构不同,说明意义不大。在 CodePlex 的主项目页面上也有一个包:http: //neatupload.codeplex.com/,但如果您使用此包,当您将其部署到 GAC 时,您的 dll 将具有不同的版本号和 guid .

使用说明书 通过使用说明书的方式,查看:http ://mumblestiltskin.blogspot.com/2009/10/using-neatupload-simple-setup.html?showComment=1335835416022#c1846924755786832325 ,还有一个html手册上面的二进制包。在其他软件包中,您必须使用 Open Office 来“构建”手册。然后,当然,你可以参考这篇文章!

故障排除 遇到问题?

现在唯一剩下的就是添加某种处理程序,用于将文件复制到您想要的位置。NeatUpload 只将它们添加到临时文件中,我还没有弄清楚它在哪里......

于 2012-05-01T16:03:37.743 回答