我的webapp有一个非常不愉快的问题.
该应用程序的设计如下:
- 根应用程序正在加载Flex SWF,后者又在子应用程序(MagickECB)中加载第三方Flex SWF模块.
- 两个应用程序都引用了Albums.dll,在/ bin和/ MagickECB/bin中找到的dll ,两个应用程序在IIS中共享相同的应用程序池.
编辑:这是两个项目,根应用程序项目和子应用程序项目.Subapp项目参考根应用程序项目.
从根应用程序的flex应用程序加载子应用程序的flex模块时,我们会随机获得一个强制转换错误,如下所示:
获取Photobook的配置时出错:[A] Albums.LocalizationConfiguration无法转换为[B] Albums.LocalizationConfiguration.类型A源自'Albums,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'在上下文' Default '位置' C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\magickecb\4414db97\126f5aaf\assembly\dl3\cf281292\4a6ecec8_8a7bcb01\Albums.DLL '.类型B源自位于' C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files的上下文' LoadFrom '中的'Albums,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null' \ magickecb\4414db97\126f5aaf \组件\ DL3\017fab88\a91238d1_7977cb01 \相册.".在Albums.CGlobal.GetUserLocale(String userHandle)中的Albums.LocalizationConfiguration.GetConfig()
试图调查这个问题,我发现了GetConfig方法导致返回的强制转换错误
return (LocalizationConfiguration)ConfigurationManager.GetSection("Localization/Localization");
Run Code Online (Sandbox Code Playgroud)
Web.config中的部分声明如下:(编辑:根应用程序的web.config)
<sectionGroup name="Localization">
<section name="Localization" type="Albums.LocalizationConfigurationHandler, Albums"/>
</sectionGroup>
Run Code Online (Sandbox Code Playgroud)
我的猜测是GetSection的内部代码试图在"LoadFrom"上下文中加载Albums.dll,因此导致与/ bin路径中加载的原始Albums.dll发生冲突(请参阅上下文问题)
我还注意到/ MagickECB/Bin中的其他dll也引用了Albums.dll,所以我重建所有项目,以便每个DLL引用相同版本的Albums.dll
最后,如果您检查临时文件中的dll完整路径,则扩展名是不同的(大写与小写).
关于如何解决这个问题的任何意见将不胜感激!!
我的客户希望能够在线和离线工作来操作数据,通常是创建或检索产品.
在线时,他想使用Web服务和服务器数据库,但是当离线(网络中断或其他)时,他希望数据在localStorage中持久化和加密.
我要去一个javascript加密lib,从登录页面获取密码,并使用密码派生密钥加密密码.密钥将存储在一个简单的javascript var中(页面是动态的,因此不会更改页面).
您对此事有何看法?您预先设定了哪些解决方案?任何好的javascript加密lib?
.net ×1
assemblies ×1
c# ×1
cryptography ×1
html5 ×1
javascript ×1
load ×1
offline ×1
scope ×1