为什么就是不加载bin子目录下的DLL?用了privatePath也一样无效,在搞不好就完蛋了>_<

代码蜗牛sky 2008-01-29 06:57:11
试过用privatePath单一样提示:分析器错误
说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。

分析器错误信息: 未能加载类型“WebConfigTest._Default”。

源错误:


行 1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebConfigTest._Default" %>
------------------------------------------------------------------------
web.config

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin2"/>
</assemblyBinding>
</runtime>

-----------------------------------------------------------------------‘
直接放在bin下面的子目录也不行,看了HttpRuntime的代码明明是有递归加载子目录的:

internal static string BinDirectoryInternal
{
get
{
return (Path.Combine(_theRuntime._appDomainAppPath, "bin") + Path.DirectorySeparatorChar);
}
}

private void PreloadAssembliesFromBin()
{
bool flag = false;
if (!this._isOnUNCShare)
{
IdentitySection identity = RuntimeConfig.GetAppConfig().Identity;
if (identity.Impersonate && (identity.ImpersonateToken == IntPtr.Zero))
{
flag = true;
}
}
if (flag)
{
DirectoryInfo dirInfo = new DirectoryInfo(BinDirectoryInternal);
if (dirInfo.Exists)
{
this.PreloadAssembliesFromBinRecursive(dirInfo);
}
}
}

private void PreloadAssembliesFromBinRecursive(DirectoryInfo dirInfo)
{
foreach (FileInfo info in dirInfo.GetFiles("*.dll"))
{
try
{
Assembly.Load(Util.GetAssemblyNameFromFileName(info.Name));
}
catch (FileNotFoundException)
{
try
{
Assembly.LoadFrom(info.FullName);
}
catch
{
}
}
catch
{
}
}
foreach (DirectoryInfo info2 in dirInfo.GetDirectories())
{
this.PreloadAssembliesFromBinRecursive(info2);
}
}

我要怎样才能把aspx后台代码的DLL,放在非bin的目录中?
...全文
748 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycagri 2008-01-31
  • 打赏
  • 举报
回复
关注一下
yaoleshi 2008-01-31
  • 打赏
  • 举报
回复
关注一下
yaoleshi 2008-01-31
  • 打赏
  • 举报
回复
jf
代码蜗牛sky 2008-01-30
  • 打赏
  • 举报
回复
指privatePath中的路径怎样写?
试了下,好像不行
代码蜗牛sky 2008-01-30
  • 打赏
  • 举报
回复
To net_lover:

我想把:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin2"/>
</assemblyBinding>
</runtime>

放在子项目的web.config里面,可以吗?要怎样写?

目录结构:
主项目\web.config
主项目\子项目\bin\
主项目\子项目\web.config
bwangel 2008-01-30
  • 打赏
  • 举报
回复
你都声明的codebehind为.cs文件了,编译器只会去找那个cs文件,谁还会去找什么dll啊。

你看下编译以后发布的代码就知道了,第一行已经不是原来的了。
xuan.ye 2008-01-30
  • 打赏
  • 举报
回复
钻石
代码蜗牛sky 2008-01-30
  • 打赏
  • 举报
回复
另外,那个问题就是为什么没有递归加载bin及其子目录下面的全部dll呢?看HttpRuntime.FirstRequestInit的代码应该是会加载的阿?
代码蜗牛sky 2008-01-30
  • 打赏
  • 举报
回复
加上 <%@ Assembly Name="assemblyname" %> 后就成功了!!

很多资料都没有提到这个...,谢谢!
孟子E章 2008-01-30
  • 打赏
  • 举报
回复
在asp.net 2.0下进行简单测试,只有probing是可以工作的。你先写个简单的页面测试一下,确认是配置问题还是程序调用问题
孟子E章 2008-01-30
  • 打赏
  • 举报
回复
除了加入
<probing privatePath="bin2"/> 


外,还要在aspx里加入

<%@ Assembly Name="assemblyname" %>
r_swordsman 2008-01-30
  • 打赏
  • 举报
回复
类库中的代码

using System;
using System.Collections.Generic;
using System.Text;

namespace ca
{
public class pagea : System.Web.UI.Page
{
public void outxxx()
{
Response.Write("xxxxxxxxxxxxxxxxxxxxxxxx");
}
}
}



生成 dll 后放到网站的bin目录

default.aspx 页面:

<%@ Page Language="C#" Inherits="ca.pagea" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<%
outxxx(); // <---------------------------
%>
</div>
</form>
</body>
</html>


zhuanshen712 2008-01-30
  • 打赏
  • 举报
回复
我也顶
代码蜗牛sky 2008-01-30
  • 打赏
  • 举报
回复
代码蜗牛sky 2008-01-29
  • 打赏
  • 举报
回复
难道真的没人会吗?...
刀枪blue 2008-01-29
  • 打赏
  • 举报
回复
看见iv的说~~呼呼
代码蜗牛sky 2008-01-29
  • 打赏
  • 举报
回复
谁有已经配置好的示例项目发一个给我也可以,我的邮箱是miracle@188.com,我已经为这个搞了一天了就是不行
代码蜗牛sky 2008-01-29
  • 打赏
  • 举报
回复
一样的错误,还是不行
wuyi8808 2008-01-29
  • 打赏
  • 举报
回复
<%@ Page Language="C#" AutoEventWireup="true" Inherits="WebConfigTest._Default" %>
wuyi8808 2008-01-29
  • 打赏
  • 举报
回复
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebConfigTest._Default" %>
去掉 CodeBehind="Default.aspx.cs" 试试。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧