如何把C#编译成的DLL放在一个地方作为全服务器不同域名调用

如何把C#编译成的DLL放在一个地方作为全服务器不同域名调用,第1张

使用全局程序集GAC
关于GAC,复制点东西给你:
Gac就是C:\WINDOWS\assembly文件夹,中文叫全局程序集缓存,把dll放到这个文件夹里,bin下面就不用放dll了,目的是为了程序集共享。
如何把aspnet网站部署到Gac里面
首先在你Visual Studio的安装目录里找到snexe文件,放到cmd里执行
snexe -k C:\testKeysnk
这样就会在你C盘的目录下生成testKeysnk密钥文件
然后
VS2003
在网站项目的AssemblyInfocs里面的[assembly: AssemblyKeyFile("")]做类似如下配置
[assembly: AssemblyKeyFile(@"C:\testKeysnk
")]
注意这里写绝对路径最好,相对路径很难写
生成网站
这时网站的dll就是个强命名程序集,
打开程序---管理工具---net framework11(或20)配置
我的电脑,程序集缓存,右键添加,把刚生成好的dll添加进去,无错的话就添加成功了。
这时你可以把自己bin目录下的dll删了,但这时网页还打不开,对webconfig做如下修改
<compilation
defaultLanguage="c#"
debug="true"
>
<assemblies>
<add assembly="youDllname, Version=10281120076, Culture=neutral, PublicKeyToken=c52d31a7559027ce"/>
</assemblies>
</compilation>
至于assembly后面的dll全名怎么写,你可以用反编译工具Reflectorexe去查你的dll,也可以在net framework11(或20)配置里面找到你的dll查属性得到。
配好后网页就应该可以打开了,如果打不开,重启下iis
VS2005
要麻烦一点,你生成好snk文件后,第一步,当你确定好网站程序不改了后,点网站发布,在发布里面用固定命名和单页程序集,和对预编译程序用强命名,下面有一个可以选择snk文件的按纽,把snk文件选进去,发布网站,
然后再用上面的方法把bin目录里面的dll加到Gac里面,这时可以把bin目录里面的dll删了。然后配制webconfig如下
<configuration>节点下
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asmv1">
<qualifyAssembly partialName="CEEIPCRMBusinessEntities" fullName="CEEIPCRMBusinessEntities, Version=1000, Culture=neutral, PublicKeyToken=C75F352AFF88DAD1"/>
</assemblyBinding>
</runtime>
这时网站应该可以运行。qualifyAssembly 在2005里面是通知运行时去Gac找dll的方法
基本上是这样,但你第一次很可能 *** 作成功不了,所以要注意如下问题
webconfig永远是在你部署时修改,你要是在开发时修改就有错
当你都配制好后,要重启下iis,你更新dll的时候最好也重启下iis,为什么呢?
因为运行时是先去找C:\WINDOWS\MicrosoftNET\Framework\v114322\Temporary ASPNET Files
下面的一个叫root 文件里面的dll,如果找到了,就不会去Gac里面找了,重启IIS的目的就是为了把里面的文件删除
并不是所有dll都可以放到Gac里面的,比如ajaxdll系列,因为这个dll会生成xml文档,dll在GAC里面,那xml会生成在哪里呢?所以凡是要生成xml文档的dll都不适合放进去(当然也有解决方案不过麻烦)

以上就是关于如何把C#编译成的DLL放在一个地方作为全服务器不同域名调用全部的内容,包括:如何把C#编译成的DLL放在一个地方作为全服务器不同域名调用、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9366517.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存