2

我在 /root/dnn 的服务器上有 dotnetnuke 门户,我正在 c# VS2008 中创建 asp.net 应用程序,我需要在 /root/app 上上传。

当我部署我的应用程序时,它需要从 /root/dnn/bin 而不是 /root/app/bin 引用 dotnetnuke.dll 程序集。

如果不将应用程序文件放在 /root/dnn 中,我该如何管理它?

我尝试设置自动刷新路径,然后在上传后删除 /root/app/bin/dotnetnuke.dll,以便应用程序尝试引用 ../dnn/bin/dotnetnuke.dll 中缺少的程序集,但“应用程序是未预编译”错误弹出,所以我尝试在没有预编译的情况下上传它,但仍然找不到参考。

4

4 回答 4

2

为什么不给你的应用它自己的副本?这将解决所有问题...

换句话说,为什么要跨应用引用?它违背了 IIS 和 ASP.NET 的所有安全机制

于 2009-07-22T11:28:57.123 回答
2

正如紫蚁上面所说,要么

  1. 将 DotNetNuke 程序集加载到 GAC 中(这很麻烦,因为它阻止了您以后能够 XCOPY 升级 DNN)
  2. 将您的应用程序放入 DNN 应用程序文件夹(听起来像您所做的)
  3. 将 DNN dll 复制到您的应用程序文件夹中。(最常见的解决方案)

您正在考虑的是<probing privatePath="" />配置文件的元素。但我不认为它可用于网络应用程序并且(根据文档)仅适用于子文件夹。

<configuration>
   <runtime>
      <assemblyBinding>
         <probing privatePath="bin;bin2\subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>
于 2009-10-19T16:55:44.903 回答
0

毕竟,我必须在门户文件夹中上传 .aspx 和 .aspx.cs 文件,在 dnn 的 bin 文件夹中上传 bin 文件,将 web.config 中的几行添加到 dnn 的 web.config 中,然后通过将查询从代码而不是使用数据集对象,即 .xsd、.xss 文件。我还必须在上传之前将代码从我的 App_Code 复制到我的 .cs 文件中,因为 C# 和 VS 不能在 dnn 的 App_Code 中一起编译。

于 2009-07-22T16:38:16.603 回答
0

我认为您尝试做的最好的选择是将 DotNetNuke.dll 安装到服务器上的 GAC 中。我不相信 ASP.NET/IIS 将允许访问当前网站文件夹结构之外的任何程序集。

于 2009-08-07T13:55:57.467 回答