【发布时间】:2013-07-19 10:53:08
【问题描述】:
在将我的本地测试应用程序部署到共享网络托管 (godaddy) 时,我遇到了“程序集不允许部分受信任的调用者”的问题。
我已经阅读了各种帖子和解决方案,其中最需要对我的应用进行更改的帖子和解决方案似乎是 here。
现在是否有任何预编译的 dll 可供我使用,而无需重建 nhibernate,因为我无权访问 svn 或不知道如何进行操作?
【问题讨论】:
标签: security nhibernate
在将我的本地测试应用程序部署到共享网络托管 (godaddy) 时,我遇到了“程序集不允许部分受信任的调用者”的问题。
我已经阅读了各种帖子和解决方案,其中最需要对我的应用进行更改的帖子和解决方案似乎是 here。
现在是否有任何预编译的 dll 可供我使用,而无需重建 nhibernate,因为我无权访问 svn 或不知道如何进行操作?
【问题讨论】:
标签: security nhibernate
我假设您使用的是 NH 3.2,但如果您使用的是 Fluent NH,我无法确定。
创建了一个package on NUGET 以满足中等信任环境的需求。 还有一个blog post 描述了如何使用这个包。
基本上做一个包安装:-
PM> 安装包 NHibernate.DependencyInjection
然后使用以下代码:-
protected void Application_Start() {
Initializer.RegisterBytecodeProvider();
...
Rest of configuration code here
}
你不需要重新编译任何东西。
【讨论】:
我遇到了同样的问题,并且能够使用 NHibernate.DependencyInjection 解决它。
这些是我采取的步骤:
1) 安装了NuGet package;
2) 实现 IEntityInjector 接口:
public class EntityInjector : IEntityInjector
{
public object[] GetConstructorParameters(System.Type type)
{
//return null if your objects have parameterless constructors
return null;
}
}
3) 在 Global.asax Application_Start 中,我注册了注入器:
protected void Application_Start()
{
Initializer.RegisterBytecodeProvider(new EntityInjector());
...
}
我希望这会有所帮助。
【讨论】: